<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>わんくま同盟</title><link>http://blogs.wankuma.com/MainFeed.aspx</link><description>わんくま同盟</description><generator>.Text Version 0.95.2004.102</generator><item><title>[VMWare]VMWare Server 2.0でVMWare Tools</title><link>http://blogs.wankuma.com/kazuki/archive/2008/11/21/161908.aspx</link><pubDate>Fri, 21 Nov 2008 14:45:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/kazuki/archive/2008/11/21/161908.aspx</guid><wfw:comment>http://blogs.wankuma.com/kazuki/comments/161908.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/kazuki/comments/commentRss/161908.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/kazuki/archive/2008/11/21/161908.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.wankuma.com/kazuki/services/trackbacks/161908.aspx</trackback:ping><source url="http://blogs.wankuma.com/kazuki/rss.aspx">かずきのBlog</source><description>&lt;p&gt;VMWare Server 2.0から1系と比べて管理ツールのUIががらっと変わった。&lt;br&gt;ということで、VMWare Toolsのインストールをするためのボタンの位置も変わった。&lt;/p&gt; &lt;p&gt;よく使うのでメモ。&lt;br&gt;下の画面の右側の部分にInstall VMWare Tools...というものがある。&lt;br&gt;（ゲストOSを起動した状態で押せるようになる）&lt;/p&gt; &lt;p&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/VMWareVMWareServer2.0VMWareTools_14DBD/image.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="322" alt="image" src="http://kazuki.wankuma.com/images/2008/VMWareVMWareServer2.0VMWareTools_14DBD/image_thumb.png" width="782" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;これをクリックするとゲストOS側でインストーラが起動するっていう寸法だ。 &lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/kazuki/aggbug/161908.aspx" width = "1" height = "1" /&gt;</description><dc:creator>kazuki@wankuma.com (かずき)</dc:creator></item><item><title>デザインパターンを学ぶ～その21：Commandパターン(1)～</title><link>http://blogs.wankuma.com/masaru/archive/2008/11/21/161907.aspx</link><pubDate>Fri, 21 Nov 2008 14:40:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/masaru/archive/2008/11/21/161907.aspx</guid><wfw:comment>http://blogs.wankuma.com/masaru/comments/161907.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/masaru/comments/commentRss/161907.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/masaru/archive/2008/11/21/161907.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.wankuma.com/masaru/services/trackbacks/161907.aspx</trackback:ping><source url="http://blogs.wankuma.com/masaru/rss.aspx">まさるblog</source><description>&lt;blockquote&gt; &lt;p&gt;Command&lt;/p&gt; &lt;p&gt;命令&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Commandパターンは、「命令」をオブジェクトとして扱うパターンです。これにより「命令」を呼び出す側は、その「命令」が実際どのように動作するか気にする必要がなくなります。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;このパターンの概要は以下の通り。&lt;/p&gt; &lt;ol&gt; &lt;li&gt;「命令」を実行するメソッドExecuteをもつインターフェイスを定義します。&lt;br&gt; &lt;h5&gt;C#&lt;/h5&gt; &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:0bcabec6-58ba-4eda-a1c7-71b47f15118b" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c#"&gt;public interface ICommand
{
  void Execute();
}
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;
&lt;h5&gt;VB&lt;/h5&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:8146d4cb-bdd4-40ba-9978-e47aa98bcefe" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="vb"&gt;Public Interface ICommand
  Sub Execute()
End Interface
&lt;/pre&gt;&lt;/div&gt;
&lt;li&gt;「命令」を受け取るクラス、Recieverを定義します。RecieverはどんなクラスでもOKです。コード例ではLightにしました。 &lt;br&gt;
&lt;h5&gt;C#&lt;/h5&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:382ecc86-63b5-42b0-88fa-8f42546bd0e6" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c#"&gt;public class Light
{
  private enum State
  {
    On
    , Off
  }

  private State state = State.Off;

  public void On()
  {
    this.state = State.On;
    Console.WriteLine("ライトが点きました");
  }

  public void Off()
  {
    this.state = State.Off;
    Console.WriteLine("ライトが消えました");
  }

  public void DisplayState()
  {
    if (this.state == State.On)
    {
      Console.WriteLine("ライトは点いています");
    }
    else
    {
      Console.WriteLine("ライトは消えています");
    }
  }
}
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;
&lt;h5&gt;VB&lt;/h5&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:3699b4ad-3e47-4c84-a83e-56a7e1f7fa6c" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="vb"&gt;Public Class Light

  Private Enum PowerState
    [On]
    Off
  End Enum

  Private state As PowerState = PowerState.Off

  Public Sub [On]()
    Me.state = PowerState.On
    Console.WriteLine("ライトが点きました")
  End Sub

  Public Sub Off()
    Me.state = PowerState.Off
    Console.WriteLine("ライトが消えました")
  End Sub

  Public Sub DisplayState()
    If Me.state = PowerState.On Then
      Console.WriteLine("ライトは点いています")
    Else
      Console.WriteLine("ライトは消えています")
    End If
  End Sub

End Class
&lt;/pre&gt;&lt;/div&gt;
&lt;li&gt;実際にRecieverに対しての命令をICommandを実装したクラスとして定義します。コード例ではLightのOn、OffそれぞれのCommandを定義しています。&lt;br&gt;
&lt;h5&gt;C#&lt;/h5&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:4ecde431-af21-4f0c-a4aa-7bfb84d767d3" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c#"&gt;public class LightOnCommand : ICommand
{
  private Light light;

  public LightOnCommand(Light light)
  {
    this.light = light;
  }

  public void Execute()
  {
    this.light.On();
  }
}

public class LightOffCommand : ICommand
{
  private Light light;

  public LightOffCommand(Light light)
  {
    this.light = light;
  }

  public void Execute()
  {
    this.light.Off();
  }
}
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;
&lt;h5&gt;VB&lt;/h5&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:024bb2fe-e9d1-44c3-961e-aef4afebc552" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="vb"&gt;Public Class LightOnCommand
  Implements ICommand

  Private light As Light

  Public Sub New(ByVal light As Light)
    Me.light = light
  End Sub

  Public Sub Execute() Implements ICommand.Execute
    Me.light.On()
  End Sub

End Class

Public Class LightOffCommand
  Implements ICommand

  Private light As Light

  Public Sub New(ByVal light As Light)
    Me.light = light
  End Sub

  Public Sub Execute() Implements ICommand.Execute
    Me.light.Off()
  End Sub

End Class
&lt;/pre&gt;&lt;/div&gt;
&lt;li&gt;Commandを登録して、実際に起動するInvokerを定義します。コード例ではRemoteControllerとして、On、OffそれぞれのCommandを登録できるようにしています。&lt;br&gt;
&lt;h5&gt;C#&lt;/h5&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:cf38cf12-82e6-4566-ad8b-bfa3ea4968e0" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c#"&gt;public class RemoteController
{
  private ICommand onCommand;
  public ICommand OnCommand
  {
    set
    {
      this.onCommand = value;
    }
  }

  private ICommand offCommand;
  public ICommand OffCommand
  {
    set
    {
      this.offCommand = value;
    }
  }

  public void OnButtonWasPressed()
  {
    if (this.onCommand == null)
    {
      return;
    }
    this.onCommand.Execute();
  }

  public void OffButtonWasPressed()
  {
    if (this.offCommand == null)
    {
      return;
    }
    this.offCommand.Execute();
  }
}
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;
&lt;h5&gt;VB&lt;/h5&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:066e3a4e-1dee-4355-ac34-faa100eebe2c" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="vb"&gt;Public Class RemoteController

  Private _onCommand As ICommand
  Public WriteOnly Property OnCommand() As ICommand
    Set(ByVal value As ICommand)
      Me._onCommand = value
    End Set
  End Property

  Private _offCommand As ICommand
  Public WriteOnly Property OffCommand() As ICommand
    Set(ByVal value As ICommand)
      _offCommand = value
    End Set
  End Property

  Public Sub OnButtonWasPressed()
    If Me._onCommand Is Nothing Then
      Return
    End If
    Me._onCommand.Execute()
  End Sub

  Public Sub OffButtonWasPressed()
    If Me._offCommand Is Nothing Then
      Return
    End If
    Me._offCommand.Execute()
  End Sub

End Class
&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;実行してみましょう。Clientでは次のようにCommandを使用します。&lt;/p&gt;
&lt;h5&gt;C#&lt;/h5&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:1a60d30f-5800-4345-bd9a-54dcd0cbb268" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c#"&gt;public class Program
{
  public static void Main(string[] args)
  {
    // Invokerのインスタンス作成
    RemoteController remoCon = new RemoteController();

    Console.WriteLine("■Lightに対してCommand実行");

    // Reciever:Lightのインスタンス作成
    Light light = new Light();

    light.DisplayState();

    // Light用Command作成
    LightOnCommand lightOnCommand = new LightOnCommand(light);
    LightOffCommand lightOffCommand = new LightOffCommand(light);

    // Light用CommandをInvokerに設定
    remoCon.OnCommand = lightOnCommand;
    remoCon.OffCommand = lightOffCommand;

    // InvokerよりOnCommand実行
    remoCon.OnButtonWasPressed();

    light.DisplayState();

    // InvokerよりOffCommand実行
    remoCon.OffButtonWasPressed();

    light.DisplayState();

    Console.ReadKey();
  }
}
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h5&gt;VB&lt;/h5&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:6ee0d812-9b42-4a8b-9b28-4eb6700db4e5" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="vb"&gt;Public Class Program

  Public Shared Sub Main(ByVal args As String())
    ' Invokerのインスタンス作成
    Dim remoCon As New RemoteController()

    Console.WriteLine("■Lightに対してCommand実行")

    ' Reciever:Lightのインスタンス作成
    Dim light As New Light()

    light.DisplayState()

    ' Light用Command作成
    Dim lightOnCommand As New LightOnCommand(light)
    Dim lightOffCommand As New LightOffCommand(light)

    ' Light用CommandをInvokerに設定
    remoCon.OnCommand = lightOnCommand
    remoCon.OffCommand = lightOffCommand

    ' InvokerよりOnCommand実行
    remoCon.OnButtonWasPressed()

    light.DisplayState()

    ' InvokerよりOffCommand実行
    remoCon.OffButtonWasPressed()

    light.DisplayState()

    Console.ReadKey()
  End Sub

End Class
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;上記のクラス、インターフェイスの関連をクラス図で現わすと、次のようになります。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://masaru.wankuma.com/img/blogimg/21Command1_14312/image.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="468" alt="Commandパターンクラス図" src="http://masaru.wankuma.com/img/blogimg/21Command1_14312/image_thumb.png" width="644" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;それでは、コードを実行してみましょう。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://masaru.wankuma.com/img/blogimg/21Command1_14312/image_3.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="468" alt="image" src="http://masaru.wankuma.com/img/blogimg/21Command1_14312/image_thumb_3.png" width="644" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;ClientはInvokerに登録されたCommandを通して、Recieverの動作を呼び出していることがわかります。&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;そして、Commandを入れ替えれば、他のRecieverに対しても処理を行うことが可能です。&lt;/p&gt;
&lt;p&gt;例えばCDPlayerに対する処理を行うとして、次のようにReciever、Commandを新たに作成し、Clientのコードを変更します。このとき、Invoker、すでに作成されたCommandへの変更を行う必要はありません。&lt;/p&gt;
&lt;h5&gt;C#&lt;/h5&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:e6738071-6491-4927-9326-27a66061478c" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c#"&gt;public class CDPlayer
{
  enum State
  {
    Play
    , Stop
  }

  private State state = State.Stop;

  public void Play()
  {
    this.state = State.Play;
    Console.WriteLine("CDが再生されました");
  }

  public void Stop()
  {
    this.state = State.Stop;
    Console.WriteLine("CDが停止されました");
  }

  public void DisplayState()
  {
    if (this.state == State.Play)
    {
      Console.WriteLine("CDは再生中です");
    }
    else
    {
      Console.WriteLine("CDは停止中です");
    }
  }
}

public class CDPlayerPlayCommand : ICommand
{
  private CDPlayer player;

  public CDPlayerPlayCommand(CDPlayer player)
  {
    this.player = player;
  }

  #region ICommand メンバ

  public void Execute()
  {
    this.player.Play();
  }

  #endregion
}

public class CDPlayerStopCommand : ICommand
{
  private CDPlayer player;

  public CDPlayerStopCommand(CDPlayer player)
  {
    this.player = player;
  }

  #region ICommand メンバ

  public void Execute()
  {
    this.player.Stop();
  }

  #endregion
}

public class Program
{
  public static void Main(string[] args)
  {
    // Invokerのインスタンス作成
    RemoteController remoCon = new RemoteController();

    Console.WriteLine("■CDPlayerに対してCommand実行");

    // Reciever:CDPlayerのインスタンス作成
    CDPlayer player = new CDPlayer();

    player.DisplayState();

    // CDPlayer用Command作成
    CDPlayerPlayCommand playCommand = new CDPlayerPlayCommand(player);
    CDPlayerStopCommand stopCommand = new CDPlayerStopCommand(player);

    // CDPlaer用CommandをInvokerに設定
    remoCon.OnCommand = playCommand;
    remoCon.OffCommand = stopCommand;

    // InvokerよりOnCommand実行
    remoCon.OnButtonWasPressed();

    player.DisplayState();

    // InvokerよりOffCommand実行
    remoCon.OffButtonWasPressed();

    player.DisplayState();


    Console.ReadKey();
  }
}
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h5&gt;VB&lt;/h5&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:6ae9df30-e35c-4255-b6b9-7257123f025c" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="vb"&gt;Public Class CDPlayer

  Private Enum BehaviorState
    Play
    [Stop]
  End Enum

  Private state As BehaviorState = BehaviorState.[Stop]

  Public Sub Play()
    Me.state = BehaviorState.Play
    Console.WriteLine("CDが再生されました")
  End Sub

  Public Sub [Stop]()
    Me.state = BehaviorState.[Stop]
    Console.WriteLine("CDが停止されました")
  End Sub

  Public Sub DisplayState()
    If Me.state = BehaviorState.Play Then
      Console.WriteLine("CDは再生中です")
    Else
      Console.WriteLine("CDは停止中です")
    End If
  End Sub

End Class

Public Class CDPlayerPlayCommand
  Implements ICommand

  Private player As CDPlayer

  Public Sub New(ByVal player As CDPlayer)
    Me.player = player
  End Sub

  Public Sub Execute() Implements ICommand.Execute
    Me.player.Play()
  End Sub

End Class

Public Class CDPlayerStopCommand
  Implements ICommand

  Private player As CDPlayer

  Public Sub New(ByVal player As CDPlayer)
    Me.player = player
  End Sub

  Public Sub Execute() Implements ICommand.Execute
    Me.player.Stop()
  End Sub

End Class

Public Class Program

  Public Shared Sub Main(ByVal args As String())
    ' Invokerのインスタンス作成
    Dim remoCon As New RemoteController()

    Console.WriteLine("■CDPlayerに対してCommand実行")

    ' Reciever:CDPlayerのインスタンス作成
    Dim player As New CDPlayer()

    player.DisplayState()

    ' CDPlayer用Command作成
    Dim playCommand As New CDPlayerPlayCommand(player)
    Dim stopCommand As New CDPlayerStopCommand(player)

    ' Light用CommandをInvokerに設定
    remoCon.OnCommand = playCommand
    remoCon.OffCommand = stopCommand

    ' InvokerよりOnCommand実行
    remoCon.OnButtonWasPressed()

    player.DisplayState()

    ' InvokerよりOffCommand実行
    remoCon.OffButtonWasPressed()

    player.DisplayState()

    Console.ReadKey()
  End Sub

End Class
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://masaru.wankuma.com/img/blogimg/21Command1_14312/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="468" alt="image" src="http://masaru.wankuma.com/img/blogimg/21Command1_14312/image_thumb_4.png" width="644" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;CDPlayerの動作に変更されたことが確認できました。&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;さて、以上がCommandパターンの基本形です。&lt;/p&gt;
&lt;p&gt;次回は、複数のCommandをまとめて呼び出す方法について紹介します。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/masaru/aggbug/161907.aspx" width = "1" height = "1" /&gt;</description><dc:creator>まさる</dc:creator></item><item><title>福岡に来ています</title><link>http://blogs.wankuma.com/naka/archive/2008/11/21/161906.aspx</link><pubDate>Fri, 21 Nov 2008 14:20:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/naka/archive/2008/11/21/161906.aspx</guid><wfw:comment>http://blogs.wankuma.com/naka/comments/161906.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/naka/comments/commentRss/161906.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/naka/archive/2008/11/21/161906.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.wankuma.com/naka/services/trackbacks/161906.aspx</trackback:ping><source url="http://blogs.wankuma.com/naka/rss.aspx">中の技術日誌ブログ</source><description>&lt;p&gt;明日は福岡勉強会です。&lt;/p&gt; &lt;p&gt;今日は前ノリで福岡に来ています。&lt;/p&gt; &lt;p&gt;皆さんも当日でも入れますので、是非いらっしゃってください。&lt;/p&gt; &lt;p&gt;&lt;a href="http://naka.wankuma.com/site/special/2008/10/312ffa85885a_147F2/_CSC4441.jpg"&gt;&lt;img title="_CSC4441" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="163" alt="_CSC4441" src="http://naka.wankuma.com/site/special/2008/10/312ffa85885a_147F2/_CSC4441_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;こんにちは。うつせみです。&lt;br&gt;わんくま同盟 福岡勉強会 #04に登録ありがとうございます。&lt;br&gt;いよいよ明日は開催です。  &lt;p&gt;&lt;a href="http://www.wankuma.com/seminar/20081122fukuoka04/Default.aspx"&gt;http://www.wankuma.com/seminar/20081122fukuoka04/Default.aspx&lt;/a&gt;&lt;br&gt;場所は　福岡市博多区博多駅東2丁目17-5　A.R.Kビル　第二会議室です。  &lt;p&gt;現地までは&lt;br&gt;&lt;a href="http://www.wankuma.com/seminar/20081122fukuoka04/Default.aspx"&gt;http://www.wankuma.com/seminar/20081122fukuoka04/Default.aspx&lt;/a&gt;&lt;br&gt;を参考にしてください。  &lt;p&gt;【資料について】&lt;br&gt;資料を希望されている方は450円となります。&lt;br&gt;できるだけお釣りの不要なように準備をしてきてください。よろしくおねがいします。  &lt;p&gt;【懇親会について】&lt;br&gt;懇親会に参加される方は4000円になります。&lt;br&gt;学生（社会人学生は除く）の方は2000円です。当日学生証を確認させてください。&lt;br&gt;追加は何名でもいけると思いますので、当日受付で確認させてください。  &lt;p&gt;参加費は「お代は見てのお帰りだい」方式ですので、お帰りの際に所定の箱にお願いします。 何口でもOK(^^&lt;br&gt;特にプロジェクタ・ビデオのカンパ期待しています。よろしくおねがいします。  &lt;p&gt;喫煙される方などは係りの指示に従っていただきますようにお願いします。  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 10:00 ～ 10:10 わんくまについて &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 10:10 ～ 11:00 「WPFの初歩の初歩」うつせみ lv1くまー &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 11:10 ～ 12:00 「DBパフォーマンスチューニングの基礎」おいろん lv1くまー &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 12:00 ～ 12:30 おひるごはん &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 12:30 ～ 13:00 ライトニングトーク ５分間の真剣勝負 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; odolan &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oうつせみ（虚蝉） &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 13:00 ～ 14:00 「yieldについて」るーごん lv1くまー &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 14:10 ～ 15:10 「ありうべき日本語処理とは」中博俊 lv1くまー &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 15:20 ～ 16:20 「素人でもわかるWeb標準(1)」hirotow Lv1～2くまー &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 16:30 ～ 17:30 「匠の伝承ｗ （PART3：マルチな時代の設計と開発」ゆーちlv3くまー &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 18:00 ～ 懇親会～  &lt;img src ="http://blogs.wankuma.com/naka/aggbug/161906.aspx" width = "1" height = "1" /&gt;</description><dc:creator>中博俊 &lt;naka@wankuma.com&gt;</dc:creator></item><item><title>[Excel][VBA]Tips：オートシェイプ内にて表示されている文字列を設定する</title><link>http://blogs.wankuma.com/ch3cooh/archive/2008/11/21/161899.aspx</link><pubDate>Fri, 21 Nov 2008 11:32:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/ch3cooh/archive/2008/11/21/161899.aspx</guid><wfw:comment>http://blogs.wankuma.com/ch3cooh/comments/161899.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/ch3cooh/comments/commentRss/161899.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/ch3cooh/archive/2008/11/21/161899.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.wankuma.com/ch3cooh/services/trackbacks/161899.aspx</trackback:ping><source url="http://blogs.wankuma.com/ch3cooh/rss.aspx">CH3COOH(酢酸)のさっぱり日記</source><description>&lt;p&gt;&lt;a href="http://ch3cooh.wankuma.com/dialy/img/ExcelVBATips_711A/img2_01.png"&gt;&lt;img title="img2_01" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="116" alt="img2_01" src="http://ch3cooh.wankuma.com/dialy/img/ExcelVBATips_711A/img2_01_thumb.png" width="458" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;オートシェイプ内に表示されている文字列(テキスト)に&lt;br&gt;任意の文字列を設定し表示します。&lt;/p&gt; &lt;div class="wlWriterEditableSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:fdeebebb-9b89-43cd-b825-995641c87db1" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="vb"&gt;
''' &amp;lt;summary&amp;gt;
'''　オートシェイプに文字列を設定する
''' &amp;lt;/summary&amp;gt;
''' &amp;lt;param name="sheetName"&amp;gt;シート名&amp;lt;/param&amp;gt;
''' &amp;lt;param name="shapeName"&amp;gt;シェイプ名&amp;lt;/param&amp;gt;
''' &amp;lt;param name="text"&amp;gt;表示する文字列&amp;lt;/param&amp;gt;
''' &amp;lt;returns&amp;gt;
'''  無し
''' &amp;lt;/returns&amp;gt;
Public Sub SetShapeText(sheetName As String, shapeName As String, text As String)

    ' ワークシートのオブジェクトを取得
    Dim tempSheet As Worksheet
    Set tempSheet = Worksheets(sheetName)

    ' シェイプのオブジェクトを取得
    Dim tempShape As shape
    Set tempShape = tempSheet.Shapes(shapeName)

    ' シェイプにテキストを設定する
    tempShape.TextFrame.Characters.text = text

End Sub&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;特定のシートが表示された時に、&lt;br&gt;ワークシート"Sheet1"のシェイプ"shikaku"に表示されている文字列を&lt;br&gt;「Piyo」に変更する場合は、下記の様なコードを書く事が出来ます。&lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:e3fa50df-c84c-4cb3-b993-2799723cb92d" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="vb"&gt;Private Sub Worksheet_Activate()

 ' ワークシート"Sheet1"のシェイプ"shikaku"に「piyo」を設定する
    Call SetShapeText("Sheet1", "shikaku", "piyo")

End Sub 
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ch3cooh.wankuma.com/dialy/img/ExcelVBATips_711A/img2_02.png"&gt;&lt;img title="img2_02" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="116" alt="img2_02" src="http://ch3cooh.wankuma.com/dialy/img/ExcelVBATips_711A/img2_02_thumb.png" width="458" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;シートを開くと、シェイプ"shikaku"に「piyo」が表示されているのが確認出来ます。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/ch3cooh/aggbug/161899.aspx" width = "1" height = "1" /&gt;</description><dc:creator>CH3COOH</dc:creator></item><item><title>[Excel][VisualBasic]Excel.XlColorIndexの標準カラーのインデックスの値</title><link>http://blogs.wankuma.com/ch3cooh/archive/2008/11/21/161898.aspx</link><pubDate>Fri, 21 Nov 2008 11:18:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/ch3cooh/archive/2008/11/21/161898.aspx</guid><wfw:comment>http://blogs.wankuma.com/ch3cooh/comments/161898.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/ch3cooh/comments/commentRss/161898.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/ch3cooh/archive/2008/11/21/161898.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.wankuma.com/ch3cooh/services/trackbacks/161898.aspx</trackback:ping><source url="http://blogs.wankuma.com/ch3cooh/rss.aspx">CH3COOH(酢酸)のさっぱり日記</source><description>&lt;p&gt;Excel.XlColorIndexはRGB値ではなく、&lt;br&gt;標準カラーパレットのインデックス値で持っています。&lt;br&gt;インデックス値をRGB値に変換してみました。 &lt;/p&gt; &lt;div class="wlWriterEditableSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:d6115d83-89ca-4176-a9a1-c733e0d40e93" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="vb"&gt;    Public Function ColorIndexToRGB(ByVal xlColorIndex As Integer) As Integer() 

        Dim ht As New Hashtable
        '                         ↓↓左からR、G、B値
        ht.Add(1,  New Integer() {&amp;amp;HFF, &amp;amp;H0,  &amp;amp;H0,  &amp;amp;H0 })
        ht.Add(2,  New Integer() {&amp;amp;HFF, &amp;amp;HFF, &amp;amp;HFF, &amp;amp;HFF})
        ht.Add(3,  New Integer() {&amp;amp;HFF, &amp;amp;HFF, &amp;amp;H0,  &amp;amp;H0 })
        ht.Add(4,  New Integer() {&amp;amp;HFF, &amp;amp;H0,  &amp;amp;HFF, &amp;amp;H0 })
        ht.Add(5,  New Integer() {&amp;amp;HFF, &amp;amp;H0,  &amp;amp;H0,  &amp;amp;HFF})
        ht.Add(6,  New Integer() {&amp;amp;HFF, &amp;amp;HFF, &amp;amp;HFF, &amp;amp;H0 })
        ht.Add(7,  New Integer() {&amp;amp;HFF, &amp;amp;HFF, &amp;amp;H0,  &amp;amp;HFF})
        ht.Add(8,  New Integer() {&amp;amp;HFF, &amp;amp;H0,  &amp;amp;HFF, &amp;amp;HFF})
        ht.Add(9,  New Integer() {&amp;amp;HFF, &amp;amp;H80, &amp;amp;H0,  &amp;amp;H0 })
        ht.Add(10, New Integer() {&amp;amp;HFF, &amp;amp;H0,  &amp;amp;H80, &amp;amp;H0 })
        ht.Add(11, New Integer() {&amp;amp;HFF, &amp;amp;H0,  &amp;amp;H0,  &amp;amp;H80})
        ht.Add(12, New Integer() {&amp;amp;HFF, &amp;amp;H80, &amp;amp;H80, &amp;amp;H0 })
        ht.Add(13, New Integer() {&amp;amp;HFF, &amp;amp;H80, &amp;amp;H0,  &amp;amp;H80})
        ht.Add(14, New Integer() {&amp;amp;HFF, &amp;amp;H0,  &amp;amp;H80, &amp;amp;H80})
        ht.Add(15, New Integer() {&amp;amp;HFF, &amp;amp;HC0, &amp;amp;HC0, &amp;amp;HC0})
        ht.Add(16, New Integer() {&amp;amp;HFF, &amp;amp;H80, &amp;amp;H80, &amp;amp;H80})
        ht.Add(33, New Integer() {&amp;amp;HFF, &amp;amp;H0,  &amp;amp;HCC, &amp;amp;HFF})
        ht.Add(34, New Integer() {&amp;amp;HFF, &amp;amp;HCC, &amp;amp;HFF, &amp;amp;HFF})
        ht.Add(35, New Integer() {&amp;amp;HFF, &amp;amp;HCC, &amp;amp;HFF, &amp;amp;HCC})
        ht.Add(36, New Integer() {&amp;amp;HFF, &amp;amp;HFF, &amp;amp;HFF, &amp;amp;H99})
        ht.Add(37, New Integer() {&amp;amp;HFF, &amp;amp;H99, &amp;amp;HCC, &amp;amp;HFF})
        ht.Add(38, New Integer() {&amp;amp;HFF, &amp;amp;HFF, &amp;amp;H99, &amp;amp;HCC})
        ht.Add(39, New Integer() {&amp;amp;HFF, &amp;amp;HCC, &amp;amp;H99, &amp;amp;HFF})
        ht.Add(40, New Integer() {&amp;amp;HFF, &amp;amp;HFF, &amp;amp;HCC, &amp;amp;H99})
        ht.Add(41, New Integer() {&amp;amp;HFF, &amp;amp;H33, &amp;amp;H66, &amp;amp;HFF})
        ht.Add(42, New Integer() {&amp;amp;HFF, &amp;amp;H33, &amp;amp;HCC, &amp;amp;HCC})
        ht.Add(43, New Integer() {&amp;amp;HFF, &amp;amp;H99, &amp;amp;HCC, &amp;amp;H0 })
        ht.Add(44, New Integer() {&amp;amp;HFF, &amp;amp;HFF, &amp;amp;HCC, &amp;amp;H0 })
        ht.Add(45, New Integer() {&amp;amp;HFF, &amp;amp;HFF, &amp;amp;H99, &amp;amp;H0 })
        ht.Add(46, New Integer() {&amp;amp;HFF, &amp;amp;HFF, &amp;amp;H66, &amp;amp;H0 })
        ht.Add(47, New Integer() {&amp;amp;HFF, &amp;amp;H66, &amp;amp;H66, &amp;amp;H99})
        ht.Add(48, New Integer() {&amp;amp;HFF, &amp;amp;H96, &amp;amp;H96, &amp;amp;H96})
        ht.Add(49, New Integer() {&amp;amp;HFF, &amp;amp;H0,  &amp;amp;H33, &amp;amp;H66})
        ht.Add(50, New Integer() {&amp;amp;HFF, &amp;amp;H33, &amp;amp;H99, &amp;amp;H66})
        ht.Add(51, New Integer() {&amp;amp;HFF, &amp;amp;H0,  &amp;amp;H33, &amp;amp;H0 })
        ht.Add(52, New Integer() {&amp;amp;HFF, &amp;amp;H33, &amp;amp;H33, &amp;amp;H0 })
        ht.Add(53, New Integer() {&amp;amp;HFF, &amp;amp;H99, &amp;amp;H33, &amp;amp;H0 })
        ht.Add(54, New Integer() {&amp;amp;HFF, &amp;amp;H99, &amp;amp;H33, &amp;amp;H66})
        ht.Add(55, New Integer() {&amp;amp;HFF, &amp;amp;H33, &amp;amp;H33, &amp;amp;H99})
        ht.Add(56, New Integer() {&amp;amp;HFF, &amp;amp;H33, &amp;amp;H33, &amp;amp;H33}) 

        Return ht(xlColorIndex)
    End Function 
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;xlColorIndexAutomaticは、-4105、xlColorIndexNoneは、-4142なのですが、&lt;br&gt;これらに関しては変換していません。&lt;/p&gt;
&lt;p&gt;でも標準カラーパレットの色が変わったらどうしようかなぁ……&lt;br&gt;別の方法で取得する事を考えなきゃ。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/ch3cooh/aggbug/161898.aspx" width = "1" height = "1" /&gt;</description><dc:creator>CH3COOH</dc:creator></item><item><title>[Excel][VBA]Tips：オートシェイプに登録したマクロ名を取得する</title><link>http://blogs.wankuma.com/ch3cooh/archive/2008/11/21/161897.aspx</link><pubDate>Fri, 21 Nov 2008 11:15:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/ch3cooh/archive/2008/11/21/161897.aspx</guid><wfw:comment>http://blogs.wankuma.com/ch3cooh/comments/161897.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/ch3cooh/comments/commentRss/161897.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/ch3cooh/archive/2008/11/21/161897.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.wankuma.com/ch3cooh/services/trackbacks/161897.aspx</trackback:ping><source url="http://blogs.wankuma.com/ch3cooh/rss.aspx">CH3COOH(酢酸)のさっぱり日記</source><description>&lt;p&gt;&lt;a href="http://ch3cooh.wankuma.com/dialy/img/ExcelVBATips_716A/img01.png"&gt;&lt;img title="img01" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="142" alt="img01" src="http://ch3cooh.wankuma.com/dialy/img/ExcelVBATips_716A/img01_thumb.png" width="458" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;オートシェイプに登録されたマクロ名を取得します。&lt;/p&gt; &lt;div class="wlWriterEditableSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:8a8d462f-b1aa-4a9c-a70d-31f80e65d059" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="vb"&gt;''' &amp;lt;summary&amp;gt;
'''　オートシェイプに登録されているマクロ名を取得する
''' &amp;lt;/summary&amp;gt;
''' &amp;lt;param name="sheetName"&amp;gt;シート名&amp;lt;/param&amp;gt;
''' &amp;lt;param name="shapeName"&amp;gt;シェイプ名&amp;lt;/param&amp;gt;
''' &amp;lt;returns&amp;gt;
'''  オートシェイプに登録されているマクロ名
''' &amp;lt;/returns&amp;gt;
Public Function GetShapeActionMacro(sheetName As String, shapeName As String) As String

    ' ワークシートのオブジェクトを取得
    Dim tempSheet As Worksheet
    Set tempSheet = Worksheets(sheetName)

    ' シェイプのオブジェクトを取得
    Dim tempShape As shape
    Set tempShape = tempSheet.Shapes(shapeName)

    ' シェイプに登録されたマクロ名を取得
    Dim retMacroName As String
    retActionMacro = tempShape.OnAction
    GetShapeActionMacro = retActionMacro

End Function&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;ワークシート"Sheet1"のシェイプ"shikaku"に登録されているマクロ名を&lt;br&gt;取得する場合には、下記の様なコードを書く事が出来ます。&lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:8e274044-c52f-4880-9bd1-04d64b625e94" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="vb"&gt;Private Sub Worksheet_Activate()

    Dim sctionMacroName As String
    sctionMacroName = GetShapeActionMacro("Sheet1", "shikaku")

    MsgBox "Sheet1のシェイプshikakuの登録マクロは「" &amp;amp; sctionMacroName &amp;amp; "」です"

End Sub 
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ch3cooh.wankuma.com/dialy/img/ExcelVBATips_716A/img02.png"&gt;&lt;img title="img02" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="121" alt="img02" src="http://ch3cooh.wankuma.com/dialy/img/ExcelVBATips_716A/img02_thumb.png" width="458" border="0"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;シートを開くと、あらかじめ登録していたマクロ「Sheet1.hogeMacro」が&lt;br&gt;取得出来ているのが確認出来ます。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/ch3cooh/aggbug/161897.aspx" width = "1" height = "1" /&gt;</description><dc:creator>CH3COOH</dc:creator></item><item><title>iPhone 2.2 登場。絵文字を使うには･･･？</title><link>http://blogs.wankuma.com/shuujin/archive/2008/11/21/161896.aspx</link><pubDate>Fri, 21 Nov 2008 11:12:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/shuujin/archive/2008/11/21/161896.aspx</guid><wfw:comment>http://blogs.wankuma.com/shuujin/comments/161896.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/shuujin/comments/commentRss/161896.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/shuujin/archive/2008/11/21/161896.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.wankuma.com/shuujin/services/trackbacks/161896.aspx</trackback:ping><source url="http://blogs.wankuma.com/shuujin/rss.aspx">囚人のジレンマな日々</source><description>&lt;p&gt;iPhone 2.2 が登場。さて肝心の絵文字の使い方は、&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;設定 → 一般 → キーボード → 各国のキーボード → 日本語 → 絵文字&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;を「オン」にすれば OK！&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/shuujin/aggbug/161896.aspx" width = "1" height = "1" /&gt;</description><dc:creator>囚人</dc:creator></item><item><title>できるヤツから離れていく</title><link>http://blogs.wankuma.com/jitta/archive/2008/11/21/161892.aspx</link><pubDate>Fri, 21 Nov 2008 10:31:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/jitta/archive/2008/11/21/161892.aspx</guid><wfw:comment>http://blogs.wankuma.com/jitta/comments/161892.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/jitta/comments/commentRss/161892.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/jitta/archive/2008/11/21/161892.aspx#comment</comments><slash:comments>2</slash:comments><trackback:ping>http://blogs.wankuma.com/jitta/services/trackbacks/161892.aspx</trackback:ping><source url="http://blogs.wankuma.com/jitta/rss.aspx">何となく Blog by Jitta</source><description>&lt;P class=p&gt;ネタもと：&lt;A href="http://blogs.wankuma.com/episteme/archive/2008/11/21/161829.aspx"&gt;護送船団方式&lt;/A&gt;→&lt;A href="http://blogs.wankuma.com/ognac/archive/2008/11/21/161815.aspx"&gt;1メソッドは 50行以内&lt;/A&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;誰もができる→ダメダメな奴でもできる→できん子に足並み揃える&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;
&lt;P class=p&gt;いやだ。。。&lt;/P&gt;
&lt;P class=p&gt;できん子は、あるいは「新人」に置き換えてもいいと思います。←これは、知識がたまっていないという意味です。&lt;/P&gt;
&lt;P class=p&gt;彫刻や絵画などの、手を動かす技術者は、何度も同じことを繰り返すことで、より短い時間、より少ない手間で同じものを作り、また、より美しいものを作ることができるようになります。ここに護送船団方式はあり得ません。言うなれば、「快速船方式」でしょうか。できるヤツに合わさなければ、売り物にならないのです。&lt;/P&gt;
&lt;P class=p&gt;しかし、ソフトウェア業界では、中身と外見が一致しないことがあります。どんな汚いコードでも、要望がかなっていれば良しとされます。そのため、護送船団方式が通ります。&lt;/P&gt;
&lt;P class=p&gt;このとき、できる人とできない人の差は、知識です。&lt;/P&gt;
&lt;P class=p&gt;επιστημηさんが書かれるコードは、時々理解できません。それは、私に STL の知識がないからです。Ｒ・田中一郎さんが書かれるコードが、時々理解できません。それは、私にラムダ式の知識がないからです。&lt;/P&gt;
&lt;P class=p&gt;じゃぁ、この3人が一緒に仕事をすることになったとき、どうするでしょう？個人組合であれば、それぞれがそれぞれの力量で行います。しかし、企業では、一番知識のない人、つまり私が理解できるコードを書くことが強要されます。なぜなら、新卒もまた、わからないと思われ、メンテナンスを担当することになってしまった人が理解できるかどうか、わからないからです。&lt;/P&gt;
&lt;P class=p&gt;できる人にとっては、面白くないですよね。第一、向上心が削がれます。できる、できないの差は、ここにこそあるはずです。そこを「評価しない」と言っているにも等しいことです。&lt;/P&gt;
&lt;P class=p&gt;結果。できる人から離れていく(辞めていく)ということになるでしょう。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/jitta/aggbug/161892.aspx" width = "1" height = "1" /&gt;</description><dc:creator>はなおか じった</dc:creator></item><item><title>言葉が生まれる瞬間</title><link>http://blogs.wankuma.com/jitta/archive/2008/11/21/161891.aspx</link><pubDate>Fri, 21 Nov 2008 10:28:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/jitta/archive/2008/11/21/161891.aspx</guid><wfw:comment>http://blogs.wankuma.com/jitta/comments/161891.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/jitta/comments/commentRss/161891.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/jitta/archive/2008/11/21/161891.aspx#comment</comments><slash:comments>1</slash:comments><trackback:ping>http://blogs.wankuma.com/jitta/services/trackbacks/161891.aspx</trackback:ping><source url="http://blogs.wankuma.com/jitta/rss.aspx">何となく Blog by Jitta</source><description>&lt;P class=p&gt;いまだに検索キーワードとしてトップを走っている「押下」ですが、なんと！「言葉を広めたのは私かもしれない」という方からコメントをいただけました！！コメントとして埋もらせてしまうのはもったいないと思い、エントリとして取り上げて良いかと尋ねたところ、了解をいただきましたので、ここに引用してきます。&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=quoteSource&gt;&lt;A href="http://blogs.wankuma.com/jitta/archive/2006/01/18/20696.aspx#161597"&gt;それは私かも&lt;/A&gt;より：&lt;/P&gt;
&lt;P class=p&gt;１９８４年頃、ある大手生保の端末システムの基本設計書を記述しているとき、画面の操作説明を記述する際、「Ｆ２キーを○○する」と言う文章の○○に何を使うか半日ほど悩みました。&lt;BR&gt;「押す」では前方の物を向こうに押すニュアンスがある、「打鍵」ではピアノの様に叩くニュアンスがあり、字面的に「押下」が一番ピッタリで、広辞苑で調べても載って無く、漢字辞典で調べてもソンな言葉はありません。&lt;/P&gt;
&lt;P class=p&gt;しかし一度「押下」と言う字を頭に刷り込むとそれ以外は思いつかなくなり、「押下」で基本設計書を作成し、提出しました。&lt;/P&gt;
&lt;P class=p&gt;設計書のレビューの時に「この字はなんて読むの」と聞かれたとき赤面しながら「&amp;#8221;おうか&amp;#8221;と読んでます」と応えたのを覚えています。&lt;/P&gt;
&lt;P class=p&gt;その頃は、まだワープロもなく手書きで設計書を作っていた頃でしたので、どこかの文章を引用したのでは無いと思います。&lt;/P&gt;
&lt;P class=p&gt;その大手生保の端末システムは、日本の大手コンピュータメーカで、ホストシステムはＩＢＭでしたので、その後主にその２社を中心に「押下」が蔓延していったのだと思います。&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=p&gt;すごい！！&lt;Q&gt;一度「押下」と言う字を頭に刷り込むとそれ以外は思いつかなくなり&lt;/Q&gt;って、ありますね。言葉が思いつかなくて、「＊＊ということなんだけど、それよりもっといい言葉&amp;#8230;」と思っていると、「＊＊」がもう頭から離れなくて、「それでいいや」となってしまう。でも、初めて見た人にでも、意味しているところは通じているのですからすごいですよね。&lt;/P&gt;
&lt;P class=p&gt;情報をいただきましたu_2さん、ありがとうございます。&lt;/P&gt;&lt;BR&gt;
&lt;P class="p comment"&gt;Live Search で「押下」を検索すると、関連検索として、「押下とは」「押下読み方」が出てきます。Google では他に「押下 対義語」がありますね。ほぇ～&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/jitta/aggbug/161891.aspx" width = "1" height = "1" /&gt;</description><dc:creator>はなおか じった</dc:creator></item><item><title>あらゆる可能性に思いを馳せる</title><link>http://blogs.wankuma.com/jitta/archive/2008/11/21/161889.aspx</link><pubDate>Fri, 21 Nov 2008 10:26:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/jitta/archive/2008/11/21/161889.aspx</guid><wfw:comment>http://blogs.wankuma.com/jitta/comments/161889.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/jitta/comments/commentRss/161889.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/jitta/archive/2008/11/21/161889.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.wankuma.com/jitta/services/trackbacks/161889.aspx</trackback:ping><source url="http://blogs.wankuma.com/jitta/rss.aspx">何となく Blog by Jitta</source><description>&lt;BLOCKQUOTE&gt;
&lt;P class=quoteSource&gt;&lt;A class=outerLink title=⇒atmarkit.co.jp href="http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=47313&amp;amp;forum=7&amp;amp;start=0"&gt;スレッドについて&lt;/A&gt;（Insider.NET 会議室）より：&lt;/P&gt;
&lt;P&gt;言語：Visual Stdio2008 C#&lt;BR&gt;プロジェクト形態：Windowsサービス&lt;BR&gt;&lt;BR&gt;１つのスレッドで、複数（5種類）のメソッドに優先順位をつけて同期処理したいの&lt;BR&gt;ですがどのようなスレッドの作りにしたらいいでしょうか？&lt;BR&gt;スレッドについてのアドバイスをご教授下さい。&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=p&gt;すてき。。。&lt;/P&gt;
&lt;P class=p&gt;「1つのスレッドで」と書いてあるのに、いくつかのメソッドを「同期処理したい」とは、どんな感じ？&lt;/P&gt;
&lt;P class=p&gt;と思ったら、メソッドを逐次処理したい、と。&lt;/P&gt;
&lt;P class=p&gt;締め切りが迫って焦っているのかなぁ？だったら掲示板なんかで聞いてないで、上司に相談した方がいいよ。&lt;/P&gt;&lt;BR&gt;
&lt;P class=p&gt;で終わると、ネタにならないので。&lt;/P&gt;
&lt;P class=p&gt;いったい質問者は、どんなことを聞いて、プログラムを始めたのでしょう？このスレッドに出ている情報だけでは、正しく安全なプログラムを作ることはできません。&lt;/P&gt;
&lt;P class=p&gt;まず、メソッド A～D の内容がわかりません。「投稿日時: 2008-11-20 10:37」には、&lt;Q&gt;あるメソッドが終了しない状態になった場合、各メソッドをタイムアウトで終了させようと考えています&lt;/Q&gt;とあります。A～D のメソッドで行う処理は、いつでも中断して良いのでしょうか。&lt;/P&gt;
&lt;P class=p&gt;例えばですね、ファイルを処理します。具体例を出すと、Microsoft Office の場合、ファイルの第2ストリーム？か何かに、使用中であることを記録します。そのため、他のインスタンスから同じファイルを使用しようとすると、「＊＊が使用中です」というメッセージが出ます。時々、この記録を消さずに死んでくれるときがあります。そうすると、編集できなくなってしまいます、何とかしてください。。。&lt;/P&gt;
&lt;P class=p&gt;メソッド A～D の間に、そういう処理はないのかな、と。そもそも、なぜ「30秒周期」なのか。その「30秒周期」というのは、どのようなことを検討して、どのようにして妥当性を確認したのか。&lt;/P&gt;
&lt;P class=p&gt;また、メソッド A～D は、どれくらいの時間で終了することが見込まれるのか。それは、どのような条件で計測したものなのか。どのような条件だと、どれくらい遅くなるのか。どうやってそれを計測して、どのように分析したのか。&lt;/P&gt;
&lt;P class=p&gt;んと。情報処理技術者試験（プロジェクト マネージャ）にでます。マジで。過去、遭遇しました。プロジェクト マネージャなんかじゃないから関係ない？じゃぁ、あなたがプロマネから質問されたら、どう答えます？&lt;/P&gt;
&lt;P class=p&gt;はい。あらゆる可能性に思いを巡らせましょう。抜けるのは仕方がないことです。また、普通はあり得ないけど、あってもおかしくない可能性というものもあります。例えば、「ネズミがケーブルをかじった為に停電した」とか。実際にあったことですが、まずあり得ないことです。そんなところまでは、必要ありません。線引きも大事です。&lt;/P&gt;&lt;BR&gt;
&lt;P class=p&gt;読み直していて気がついたのだけど、A～D？4つしかあらへんやん！！&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/jitta/aggbug/161889.aspx" width = "1" height = "1" /&gt;</description><dc:creator>はなおか じった</dc:creator></item><item><title>不用意に投げ出（キャスト）さない</title><link>http://blogs.wankuma.com/jitta/archive/2008/11/21/161888.aspx</link><pubDate>Fri, 21 Nov 2008 10:25:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/jitta/archive/2008/11/21/161888.aspx</guid><wfw:comment>http://blogs.wankuma.com/jitta/comments/161888.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/jitta/comments/commentRss/161888.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/jitta/archive/2008/11/21/161888.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.wankuma.com/jitta/services/trackbacks/161888.aspx</trackback:ping><source url="http://blogs.wankuma.com/jitta/rss.aspx">何となく Blog by Jitta</source><description>&lt;P class=p&gt;一行で書くのは難しいなぁ。ルビ使っても、IE 以外は一行になるしなぁ。。。(タイトル)&lt;/P&gt;
&lt;P class=p&gt;閑話休題。ネタ元から。&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=quoteSource&gt;&lt;A href="http://bbs.wankuma.com/index.cgi?mode=al2&amp;amp;namber=27957"&gt;Formを閉じたときの処理&lt;/A&gt;（わんくま掲示板）より：&lt;/P&gt;
&lt;P&gt;No 28057&lt;BR&gt;■No28055 (のろ さん) に返信&lt;BR&gt;&amp;gt; (2)classの中でprivate Form1 f1;と宣言しておき、Form2が呼び出されたとき、Form1を引数に入れる。&lt;BR&gt;&lt;BR&gt;&amp;gt; &lt;BR&gt;&amp;gt; public Form2(Form1 form1)&lt;BR&gt;&amp;gt; {&lt;BR&gt;&amp;gt; InitializeComponent();&lt;BR&gt;&amp;gt; f1 = form1;&lt;BR&gt;&amp;gt; }&lt;BR&gt;&amp;gt;&lt;BR&gt;&lt;BR&gt;こんなことしなくても、f2.ShowDialog(this); とすれば、OwnerプロパティでForm1が参照できます。&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;No 28134&lt;BR&gt;# それと Owner は情報を得るために設定するものではないと思います。&lt;BR&gt;# Owner から取得するくらいならフツーにプライベート メンバで厳密な型を設定した方がマシです。&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=p&gt;これ、じゃんぬさんに賛成。理由は、Owner から参照するなら、キャストをしなければならないから。&lt;/P&gt;
&lt;P class=p&gt;キャストする、ってこと以外でも、ここで Form2 が他のフォームから表示される可能性について考えなければなりません。その場合、インターフェイスでもってプロパティを用意することになるでしょう。&lt;/P&gt;
&lt;P class=p&gt;ってなわけで、cast、投げるという意味もあるので、「不用意に投げ出さない」というタイトルにしてみました。&lt;/P&gt;
&lt;P class=p&gt;社内で&lt;A class=outerLink title=⇒pro.or.jp href="http://www.pro.or.jp/~fuji/mybooks/cdiag/index.html"&gt;Ｃプログラミング診断室&lt;/A&gt;というページが紹介されていることに気がつきました。最後に&lt;Q&gt;仲間にも本ページのURLや、本の存在を知らせるのですよ。&lt;/Q&gt;とあるので、義務を果たすことにします。ここにね、あるんですよ(苦笑)&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/jitta/aggbug/161888.aspx" width = "1" height = "1" /&gt;</description><dc:creator>はなおか じった</dc:creator></item><item><title>タニシタニシタニシタニシタニシタニシ...</title><link>http://blogs.wankuma.com/tocchann/archive/2008/11/21/161881.aspx</link><pubDate>Fri, 21 Nov 2008 09:03:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/tocchann/archive/2008/11/21/161881.aspx</guid><wfw:comment>http://blogs.wankuma.com/tocchann/comments/161881.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/tocchann/comments/commentRss/161881.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/tocchann/archive/2008/11/21/161881.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.wankuma.com/tocchann/services/trackbacks/161881.aspx</trackback:ping><source url="http://blogs.wankuma.com/tocchann/rss.aspx">とっちゃん's Blog</source><description>&lt;p&gt; 某所でいっぱいいるよー。と言っていたタニシです。お食事中ではない夜中の一シーンなので散らばってます。&lt;/p&gt; &lt;p&gt;&lt;a href="http://tocchann.wankuma.com/images/1f4cc513bf59_FC53/DSC_1998.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="172" alt="DSC_1998" src="http://tocchann.wankuma.com/images/1f4cc513bf59_FC53/DSC_1998_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;ご先祖様１号(殻の大きさで、４センチくらい)&lt;/p&gt; &lt;p&gt;&lt;a href="http://tocchann.wankuma.com/images/1f4cc513bf59_FC53/DSC_2000.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="155" alt="DSC_2000" src="http://tocchann.wankuma.com/images/1f4cc513bf59_FC53/DSC_2000_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;子孫最新号&lt;/p&gt; &lt;p&gt;&lt;a href="http://tocchann.wankuma.com/images/1f4cc513bf59_FC53/DSC_2001.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="165" alt="DSC_2001" src="http://tocchann.wankuma.com/images/1f4cc513bf59_FC53/DSC_2001_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;上から(中央に...)&lt;/p&gt; &lt;p&gt;&lt;a href="http://tocchann.wankuma.com/images/1f4cc513bf59_FC53/DSC_2002.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="206" alt="DSC_2002" src="http://tocchann.wankuma.com/images/1f4cc513bf59_FC53/DSC_2002_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;横から&lt;/p&gt; &lt;p&gt;ちなみに、餌(余ってる金魚のえさｗ)を上げないと大きいやつがいなくなります。意外ともろいんですよねぇ。。。ｗ&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/tocchann/aggbug/161881.aspx" width = "1" height = "1" /&gt;</description><dc:creator>とっちゃん</dc:creator></item><item><title>[写真] 夕焼け</title><link>http://blogs.wankuma.com/ryoichi/archive/2008/11/21/161876.aspx</link><pubDate>Fri, 21 Nov 2008 08:04:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/ryoichi/archive/2008/11/21/161876.aspx</guid><wfw:comment>http://blogs.wankuma.com/ryoichi/comments/161876.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/ryoichi/comments/commentRss/161876.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/ryoichi/archive/2008/11/21/161876.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.wankuma.com/ryoichi/services/trackbacks/161876.aspx</trackback:ping><source url="http://blogs.wankuma.com/ryoichi/rss.aspx">りょーいち Blog</source><description>&lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="603" alt="夕焼け" src="http://ryoichi.wankuma.com/blogimg/0704/e541c54f32e4_EFED/IMG_1786.jpg" width="404" border="0"&gt;&lt;/p&gt; &lt;p&gt;最近夕焼けがきれいです。&lt;br&gt;仕事してる部屋は西向きなので、最近は夕方になるとブラインド開けてちょっと和んでます。 &lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/ryoichi/aggbug/161876.aspx" width = "1" height = "1" /&gt;</description><dc:creator>りょーいち</dc:creator></item><item><title>インフルエンザ予防接種の補助開始</title><link>http://blogs.wankuma.com/kox/archive/2008/11/21/161867.aspx</link><pubDate>Fri, 21 Nov 2008 05:35:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/kox/archive/2008/11/21/161867.aspx</guid><wfw:comment>http://blogs.wankuma.com/kox/comments/161867.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/kox/comments/commentRss/161867.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/kox/archive/2008/11/21/161867.aspx#comment</comments><slash:comments>1</slash:comments><trackback:ping>http://blogs.wankuma.com/kox/services/trackbacks/161867.aspx</trackback:ping><source url="http://blogs.wankuma.com/kox/rss.aspx">Kox Blog</source><description>&lt;P&gt;うちの会社でインフルエンザ予防接種の補助が受けられるようになりました。（今のところ家族分あり＋全額負担）&lt;/P&gt;
&lt;P&gt;福利厚生の一環で強制ではありませんが、インフルエンザになってしまうと業務に多大な影響を与えてしまいますので、&lt;/P&gt;
&lt;P&gt;なるべく受けていただきたいですね。&lt;/P&gt;
&lt;P&gt;#家族は受けましたが、まだ自分は受けてませんorz&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/kox/aggbug/161867.aspx" width = "1" height = "1" /&gt;</description><dc:creator>kox@wankuma.com</dc:creator></item><item><title>暗号の2010年問題</title><link>http://blogs.wankuma.com/nakap/archive/2008/11/21/161855.aspx</link><pubDate>Fri, 21 Nov 2008 04:10:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/nakap/archive/2008/11/21/161855.aspx</guid><wfw:comment>http://blogs.wankuma.com/nakap/comments/161855.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/nakap/comments/commentRss/161855.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/nakap/archive/2008/11/21/161855.aspx#comment</comments><slash:comments>4</slash:comments><trackback:ping>http://blogs.wankuma.com/nakap/services/trackbacks/161855.aspx</trackback:ping><source url="http://blogs.wankuma.com/nakap/rss.aspx">田舎エンジニアのBlog</source><description>&lt;P&gt;ネタ元：&lt;A href="http://www.itmedia.co.jp/enterprise/articles/0811/21/news022.html"&gt;[ITMedia]暗号の2010年問題--「運用見直しが迫る」とRSA&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;あまり詳しくは無いのですが。&lt;/P&gt;
&lt;P&gt;技術の進歩により、PCなども性能が飛躍的に向上してます。&lt;/P&gt;
&lt;P&gt;PCの処理速度が上がるのはよいことなのでしょうが、こういった負の面もあります。&lt;/P&gt;
&lt;P&gt;「悪いことしないでくれ」って言っても聞かない人もいますからね・・・。&lt;/P&gt;
&lt;P&gt;いたちごっこはいつまでも続くのでしょうね。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/nakap/aggbug/161855.aspx" width = "1" height = "1" /&gt;</description><dc:creator>nakaP</dc:creator></item><item><title>[写真] ご飯タイム その２</title><link>http://blogs.wankuma.com/ryoichi/archive/2008/11/21/161840.aspx</link><pubDate>Fri, 21 Nov 2008 02:27:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/ryoichi/archive/2008/11/21/161840.aspx</guid><wfw:comment>http://blogs.wankuma.com/ryoichi/comments/161840.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/ryoichi/comments/commentRss/161840.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/ryoichi/archive/2008/11/21/161840.aspx#comment</comments><slash:comments>2</slash:comments><trackback:ping>http://blogs.wankuma.com/ryoichi/services/trackbacks/161840.aspx</trackback:ping><source url="http://blogs.wankuma.com/ryoichi/rss.aspx">りょーいち Blog</source><description>&lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="404" alt="みずきとしゅうたん" src="http://ryoichi.wankuma.com/blogimg/0704/da4926689d70_A0D8/IMG_1763.jpg" width="604" border="0"&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;昨日の写真撮ってる最中の別の一枚ｗ&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/ryoichi/aggbug/161840.aspx" width = "1" height = "1" /&gt;</description><dc:creator>りょーいち</dc:creator></item><item><title>タイムスタンプ</title><link>http://blogs.wankuma.com/rti/archive/2008/11/21/161833.aspx</link><pubDate>Fri, 21 Nov 2008 01:40:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/rti/archive/2008/11/21/161833.aspx</guid><wfw:comment>http://blogs.wankuma.com/rti/comments/161833.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/rti/comments/commentRss/161833.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/rti/archive/2008/11/21/161833.aspx#comment</comments><slash:comments>5</slash:comments><trackback:ping>http://blogs.wankuma.com/rti/services/trackbacks/161833.aspx</trackback:ping><source url="http://blogs.wankuma.com/rti/rss.aspx">R.Tanaka.Ichiro's Blog</source><description>&lt;P&gt;例えば「いつ」「何をした」を記録に取る必要があるとします。&lt;BR&gt;この記録を、世界中で行うとします。&lt;BR&gt;更に、世界中の記録をマージして時系列に並べる必要があるとします。&lt;/P&gt;
&lt;P&gt;さて、ここで問題が生じます。&lt;/P&gt;
&lt;P&gt;何故なら、今この瞬間の時刻は、世界中の国が同じ訳ではないからです。&lt;/P&gt;
&lt;P&gt;各国の時刻を元に「何をした」をリストアップする仕様なら、システムの日時を取得するだけで良いのですが、何をしたのかを時系列で並べる場合は、世界中で共通な日時を使う必要が生じます。&lt;/P&gt;
&lt;P&gt;ここで登場するのが&lt;/P&gt;
&lt;P align=center&gt;&lt;FONT color=#006400 size=6&gt;UTC(協定世界時)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;です。&lt;/P&gt;
&lt;P&gt;以前は、GMT(グリニッジ標準時)を使うのが一般的でしたが、今は UTC を使う場合が増えているそうです。&lt;/P&gt;
&lt;P&gt;ちなみに日本の場合は、UTC の時刻より 9 時間進んでいます。&lt;BR&gt;従って、システム日時から UTC を得るには 9 時間分の時間を遅らせれば良いのです。&lt;/P&gt;
&lt;P&gt;しかし、これらの詳細を自分で処理しなくても C# では以下のように簡単に処理することができます。&lt;/P&gt;
&lt;P&gt;
&lt;HR id=null&gt;

&lt;P&gt;&lt;/P&gt;
&lt;P&gt;DateTime utc = DateTime.UtcNow;&lt;/P&gt;
&lt;P&gt;
&lt;HR id=null&gt;

&lt;P&gt;&lt;/P&gt;
&lt;P&gt;ローカル時刻と UTC の変換は以下の通りです。&lt;/P&gt;
&lt;P&gt;
&lt;HR id=null&gt;

&lt;P&gt;&lt;/P&gt;
&lt;P&gt;DateTime utc = local.ToUniversalTime();&lt;BR&gt;DateTime local = utc.ToLocalTime();&lt;/P&gt;
&lt;P&gt;
&lt;HR id=null&gt;

&lt;P&gt;&lt;/P&gt;
&lt;P&gt;以上、今調べたことのメモ終了です。&lt;BR&gt;さて、修正作業開始だ orz&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;ちょっと疑問に思ったのですが・・・&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;UTC とローカル時刻の差分ってコンパネのタイムゾーンから取得しているのですか？&lt;BR&gt;サマータイムが導入されている国の場合でも正しく UTC 時刻を得られるのですか？&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/rti/aggbug/161833.aspx" width = "1" height = "1" /&gt;</description><dc:creator>Ｒ・田中一郎</dc:creator></item><item><title>今日のニュース脊髄反射</title><link>http://blogs.wankuma.com/shannon/archive/2008/11/21/161832.aspx</link><pubDate>Fri, 21 Nov 2008 01:39:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/shannon/archive/2008/11/21/161832.aspx</guid><wfw:comment>http://blogs.wankuma.com/shannon/comments/161832.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/shannon/comments/commentRss/161832.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/shannon/archive/2008/11/21/161832.aspx#comment</comments><slash:comments>1</slash:comments><trackback:ping>http://blogs.wankuma.com/shannon/services/trackbacks/161832.aspx</trackback:ping><source url="http://blogs.wankuma.com/shannon/rss.aspx">Out of Memory</source><description>&lt;P&gt;&lt;A href="http://japan.zdnet.com/sp/feature/07microsoft/story/0,3800083079,20383959,00.htm?tag=zdnw"&gt;MS、有料セキュリティサービス「Windows Live OneCare」と「Equipt」の中止へ&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;OneCare って登場当初に買ったけど、全然使わずに解約したなぁ。&lt;BR&gt;ちなみに OneCare って名前がつくものには、&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://onecare.live.jp/"&gt;Windows Live OneCare&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://onecare.live.com/site/ja-JP/default.htm"&gt;Windows Live OneCare PC セーフティ&lt;/A&gt; 
&lt;LI&gt;Windows Live OneCare PC セーフティ（同名の Windows Live Messenger 用スキャンツール） 
&lt;LI&gt;&lt;A href="https://fss.live.com/"&gt;Windows Live OneCare ファミリー セーフティ&lt;/A&gt;
&lt;LI&gt;&lt;A href="http://onecare.live.com/standard/ja-jp/server/default.htm"&gt;Windows Live OneCare for Server&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;なんてのがあるけど、全部移行するのかな？&lt;/P&gt;
&lt;P&gt;&lt;A href="http://builder.japan.zdnet.com/sp/iphone-3g-2008/story/0,3800087831,20383942,00.htm?tag=zdnw"&gt;舌の根も乾かぬうちに激変したGoogle Mobile App - builder by ZDNet Japan&lt;/A&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;携帯電話での音声入力のサポートは、それほど目新しい話ではない（日本の携帯キャリアも数年前から実施している）ものの、やはりGoogle謹製であることがポイントなのだと思う。&lt;/P&gt;
&lt;P&gt;Googleに期待を寄せる理由は、ここ日本でもストリートビューを実現したように、力業で膨大な量のデータを集めてしまう同社の「凝り性」な性質にある。&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;最近の流れで行くと、その集めたデータを全部ぶちまけてしまう性質もありそうだけど&amp;#8230;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://japan.cnet.com/news/biz/story/0,2000056020,20383938,00.htm"&gt;MS、スタートアップのベンチャー企業を支援する「Microsoft BizSpark」--開発環境などを無償提供:ニュース - CNET Japan&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;ウチの会社にも導入を提案してみようかなぁ。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/shannon/aggbug/161832.aspx" width = "1" height = "1" /&gt;</description><dc:creator>αετος</dc:creator></item><item><title>「護送船団方式」と「属人性の排除」</title><link>http://blogs.wankuma.com/episteme/archive/2008/11/21/161829.aspx</link><pubDate>Fri, 21 Nov 2008 01:29:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/episteme/archive/2008/11/21/161829.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/161829.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/161829.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/episteme/archive/2008/11/21/161829.aspx#comment</comments><slash:comments>15</slash:comments><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/161829.aspx</trackback:ping><source url="http://blogs.wankuma.com/episteme/rss.aspx">東方算程譚</source><description>&lt;P&gt;ネタ元 → &lt;A id=viewpost.ascx_TitleUrl href="/ognac/archive/2008/11/21/161815.aspx"&gt;1メソッドは 50行以内&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;んー...理解できるが納得できないルール。&lt;BR&gt;縛りを与えておかないとヘタな奴がだらだらとベタ書きしますか。&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;護送船団&lt;/STRONG&gt;方式てぇやつですわね。&lt;/P&gt;
&lt;P&gt;護送船団 ：&lt;BR&gt;　　船団の中で最も速度の遅い船に速度を合わせて、全体が統制を確保しつつ進んでいくこと&lt;BR&gt;&lt;BR&gt;まぁ、いちばん遅い船にみんながあわせれば落伍者は出ないでしょうけどねぇ...&lt;BR&gt;&lt;BR&gt;TechEd2008のBoFで「&lt;STRONG&gt;属人性の排除&lt;/STRONG&gt;」の話が出たんです。&lt;BR&gt;特定の誰とかさんじゃなきゃ知らない/できない事をなくしましょう、と。&lt;BR&gt;それが望ましいことだとは思います。&lt;BR&gt;が、&lt;STRONG&gt;ともすると護送船団方式になりそう&lt;/STRONG&gt;で怖い。&lt;BR&gt;誰もができる→ダメダメな奴でもできる→&lt;STRONG&gt;できん子に足並み揃える&lt;/STRONG&gt;&lt;BR&gt;てーことになりゃせんかと心配します。&lt;BR&gt;&lt;BR&gt;[追記] &lt;BR&gt;思うにそもそもcreativeな作業を必要とするところに&lt;BR&gt;属人性の排除を求めていいものかしら。&lt;BR&gt;それは個々のcreativityを押し殺せと命じるに等しいんじゃないかしら。&lt;BR&gt;青写真通りに組み立てる製造ラインならともかくも、&lt;BR&gt;研究部門から属人性を抜いたらそりゃまさしく"骨抜き"ですよね。&lt;BR&gt;ソフト屋さんのお仕事には製造ライン的なとこもあれば研究部門的な&lt;BR&gt;とこもありますよねぇ。&lt;BR&gt;&lt;BR&gt;「誰にもできる&lt;STRONG&gt;はず&lt;/STRONG&gt;のこと」を誰にもできるようにしようって意味での&lt;BR&gt;属人性の排除であれば賛成します。&lt;BR&gt;個々のcreativityを発揮するのに足枷となる(誰にもできるはずの)雑事&lt;BR&gt;から開放され、「ヤツにしかできないこと」を存分にやらせてあげられるなら。&lt;BR&gt;&lt;BR&gt;してみると「&lt;A id=viewpost.ascx_TitleUrl HREF="/ognac/archive/2008/11/21/161815.aspx"&gt;1メソッドは 50行以内&lt;/A&gt;」ってなルールが設けられるのは&lt;BR&gt;「codingはcreativeな工程じゃない」ってことでしょか。&lt;BR&gt;coding大好きなεπιには寂しいなー...&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/161829.aspx" width = "1" height = "1" /&gt;</description><dc:creator>επιστημη</dc:creator></item><item><title>Unity と PIAB を連携させる</title><link>http://blogs.wankuma.com/nakamura/archive/2008/11/21/161824.aspx</link><pubDate>Fri, 21 Nov 2008 00:54:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/nakamura/archive/2008/11/21/161824.aspx</guid><wfw:comment>http://blogs.wankuma.com/nakamura/comments/161824.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/nakamura/comments/commentRss/161824.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/nakamura/archive/2008/11/21/161824.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.wankuma.com/nakamura/services/trackbacks/161824.aspx</trackback:ping><source url="http://blogs.wankuma.com/nakamura/rss.aspx">Nakamura Blog</source><description>&lt;h4&gt;はじめに&lt;/h4&gt;
&lt;p&gt;
Unity と Policy Injection Application Block (以下 PIAB) と連携させてみました。
&lt;/p&gt;

&lt;h4&gt;カスタム Callhandler とカスタム HandlerAttribute&lt;/h4&gt;
&lt;pre name="code" class="c#"&gt;
[ConfigurationElementType(typeof(CustomCallHandlerData))]
public class EventLogCallHandler : ICallHandler
{
    public int Order { get; set; }

    public EventLogCallHandler(NameValueCollection attributes)
    {
        // このコンストラクタは必須みたい
    }

    private const string SOURCE = "PIABSample";

    public IMethodReturn Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext)
    {
        // メソッド呼び出し前にログを出力
        EventLog.WriteEntry(SOURCE,
            string.Format("{0} メソッドを呼び出します。", input.MethodBase.Name),
            EventLogEntryType.Information);

        // メソッド呼び出し
        IMethodReturn result = getNext()(input, getNext);

        // メソッド呼び出し後にログを出力
        if (result.Exception != null)
        {
            // 例外が発生したとき
            EventLog.WriteEntry(SOURCE,
            string.Format("{0} メソッド呼び出しで例外が発生しました。", input.MethodBase.Name),
            EventLogEntryType.Error);
        }
        else
        {
            EventLog.WriteEntry(SOURCE,
            string.Format("{0} メソッドを呼び出しました。", input.MethodBase.Name),
            EventLogEntryType.Information);
        }

        return result;
    }
}

public class EventLogCallHandlerAttribute : HandlerAttribute
{
    public override ICallHandler CreateHandler()
    {
        return new EventLogCallHandler();
    }
}
&lt;/pre&gt;
&lt;p&gt;
『&lt;a href="http://blogs.wankuma.com/nakamura/archive/2008/11/18/161633.aspx"&gt;PIAB で属性を使ってインターセプト対象メソッドを指定する&lt;/a&gt;』のエントリで作成したものを流用します。
&lt;/p&gt;

&lt;h4&gt;DI で使用するインタフェースとクラスを用意&lt;/h4&gt;
&lt;pre name="code" class="c#"&gt;
public interface IAnimal
{
    // Cry メソッド呼び出し時にイベントログを出力する
    [EventLogCallHandler]
    void Cry();
}

public class Wankuma : IAnimal
{
    public void Cry()
    {
        Console.WriteLine("クマ～");
    }
}

public class Person
{
    [Dependency]
    public IAnimal Pet { get; set; }

    public void CallPet()
    {
        Pet.Cry();
    }
}
&lt;/pre&gt;
&lt;p&gt;
毎度おなじみのインタフェースとクラスです^^;
&lt;/p&gt;

&lt;h4&gt;PIAB と Unity を連携させるために UnityContainerExtension を作成&lt;/h4&gt;
&lt;p&gt;
ここからが本番。
&lt;/p&gt;
&lt;pre name="code" class="c#"&gt;
public class EventLogExtension : UnityContainerExtension
{
    protected override void Initialize()
    {
        // ここで登録した PolicyIjectionPolicy は次に登録する
        // PolicyInjectionStrategy で使われます。
        Context.Policies.SetDefault&amp;lt;IPolicyInjectionPolicy&amp;gt;(new PolicyInjectionPolicy(true));
        
        // Unity がインスタンスを生成するパイプラインの PreCreation ステージで、
        // PolicyInjectionStrategy の処理が実行されるように登録します。
        Context.Strategies.AddNew&amp;lt;PolicyInjectionStrategy&amp;gt;(UnityBuildStage.PreCreation);
    }
}
&lt;/pre&gt;
&lt;p&gt;
PolicyInjectionStrategy は登録した PolicyInjectionPolicy を使って、Unity が生成したインスタンスに PIAB のポリシーを適用します。つまり RealProxy の派生クラスでラップする。この辺りは『&lt;a href="http://blogs.wankuma.com/nakamura/archive/2008/11/20/161776.aspx"&gt;PIABの中身を見てみた&lt;/a&gt;』のエントリを見て下さい。
&lt;/p&gt;
&lt;p&gt;
Strategies や Policies がどう利用されるのかについては、後でエントリにする予定です。
&lt;/p&gt;

&lt;h4&gt;作成した UnityContainerExtension を使ったコードに修正&lt;/h4&gt;
&lt;pre name="code" class="c#"&gt;
static void Main(string[] args)
{
    // DI コンテナ取得
    UnityContainer container = new UnityContainer();

    // DI コンテナを拡張
    container.AddNewExtension&amp;lt;EventLogExtension&amp;gt;();

    // 型を登録
    container.RegisterType&amp;lt;IAnimal, Wankuma&amp;gt;();

    // インスタンスを取得
    Person person = container.Resolve&amp;lt;Person&amp;gt;();

    // ペットを呼び出す
    person.CallPet();

    Console.ReadLine();
}
&lt;/pre&gt;
&lt;p&gt;
作成した EventLogExtension を使って、UnityContainer を拡張しています。
&lt;/p&gt;
&lt;p&gt;
このコードを実行すると、CallPet メソッド内で Cry メソッドが呼ばれる前後にイベントログが出力されます。
&lt;/p&gt;

&lt;h4&gt;まとめ&lt;/h4&gt;
&lt;p&gt;
Unity と PIAB の連携は、UnityContainer のインスタンス生成処理のパイプラインに、ポリシーを適用する処理を組み込むための UnityContainerExtension を作成することで実現可能です。
&lt;/p&gt;
&lt;img src ="http://blogs.wankuma.com/nakamura/aggbug/161824.aspx" width = "1" height = "1" /&gt;</description><dc:creator>なかむら</dc:creator></item><item><title>あさめしパクパクにゃ～</title><link>http://blogs.wankuma.com/izmktr/archive/2008/11/21/161818.aspx</link><pubDate>Thu, 20 Nov 2008 21:38:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/izmktr/archive/2008/11/21/161818.aspx</guid><wfw:comment>http://blogs.wankuma.com/izmktr/comments/161818.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/izmktr/comments/commentRss/161818.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/izmktr/archive/2008/11/21/161818.aspx#comment</comments><slash:comments>1</slash:comments><trackback:ping>http://blogs.wankuma.com/izmktr/services/trackbacks/161818.aspx</trackback:ping><source url="http://blogs.wankuma.com/izmktr/rss.aspx">Garbage Collection</source><description>&lt;P&gt;&lt;A href="http://ksk.pha22.net/"&gt;検索くん&lt;/A&gt;を導入してみました。&lt;/P&gt;
&lt;P&gt;RSSから見ている人には一度サイトを見てください。&lt;BR&gt;左のところにこんなものが追加されています。&lt;/P&gt;&lt;IMG src="http://izmktr.wankuma.com/200811/kensaku.jpg"&gt; 
&lt;P&gt;要は、YahooやGoogleから飛んできたユーザーがいた場合、&lt;BR&gt;そのキーワードを拾って、順位を表示するプラグインです。&lt;/P&gt;
&lt;P&gt;ちなみに、私のBlogは&lt;A href="http://ksk.pha22.net/rank/?siteurl=http%3A%2F%2Fblogs.wankuma.com%2Fizmktr%2F"&gt;こんな感じ&lt;/A&gt;。&lt;BR&gt;「女装」とか「変態」とかのキーワードで引っかかることもない&lt;BR&gt;非常に健全なBlogとなっているようです。&lt;/P&gt;
&lt;P&gt;Blogの設定変更でRefererが収集されなくなったので、&lt;BR&gt;残念だなーと思っている人には導入してみてはどうでしょうか。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/izmktr/aggbug/161818.aspx" width = "1" height = "1" /&gt;</description><dc:creator>出水 洸太郎</dc:creator></item><item><title>MSが正式発表：「ＩE8」は2009年に入ってから</title><link>http://blogs.wankuma.com/ogiogi/archive/2008/11/21/161817.aspx</link><pubDate>Thu, 20 Nov 2008 18:17:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/ogiogi/archive/2008/11/21/161817.aspx</guid><wfw:comment>http://blogs.wankuma.com/ogiogi/comments/161817.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/ogiogi/comments/commentRss/161817.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/ogiogi/archive/2008/11/21/161817.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.wankuma.com/ogiogi/services/trackbacks/161817.aspx</trackback:ping><source url="http://blogs.wankuma.com/ogiogi/rss.aspx">おぎわら@.NET道場 Blog(わんくま編)</source><description>&lt;P&gt;&lt;A href="http://japan.zdnet.com/sp/feature/07microsoft/story/0,3800083079,20384040,00.htm?ref=rss"&gt;http://japan.zdnet.com/sp/feature/07microsoft/story/0,3800083079,20384040,00.htm?ref=rss&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;拝承&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/ogiogi/aggbug/161817.aspx" width = "1" height = "1" /&gt;</description><dc:creator>おぎわら</dc:creator></item><item><title>Windows Mobile Xmas 「Touch the Illumination」</title><link>http://blogs.wankuma.com/ogiogi/archive/2008/11/21/161816.aspx</link><pubDate>Thu, 20 Nov 2008 17:54:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/ogiogi/archive/2008/11/21/161816.aspx</guid><wfw:comment>http://blogs.wankuma.com/ogiogi/comments/161816.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/ogiogi/comments/commentRss/161816.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/ogiogi/archive/2008/11/21/161816.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.wankuma.com/ogiogi/services/trackbacks/161816.aspx</trackback:ping><source url="http://blogs.wankuma.com/ogiogi/rss.aspx">おぎわら@.NET道場 Blog(わんくま編)</source><description>&lt;P&gt;Windows Mobile イベント&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/japan/windowsmobile/touch/event/default.mspx"&gt;http://www.microsoft.com/japan/windowsmobile/touch/event/default.mspx&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;日時 : 2008 年 11 月 22 日 (土) ～ 12 月 25 日 (木)&lt;BR&gt;会場 : 六本木ヒルズ 森タワー 52 F　東京シティビュー&lt;BR&gt;主催 : J-WAVE、TOKYO CITY VIEW&lt;BR&gt;特別協賛 : Windows Mobile&lt;/P&gt;
&lt;P&gt;おぉ。綺麗・・&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/ogiogi/aggbug/161816.aspx" width = "1" height = "1" /&gt;</description><dc:creator>おぎわら</dc:creator></item><item><title>1メソッドは 50行以内</title><link>http://blogs.wankuma.com/ognac/archive/2008/11/21/161815.aspx</link><pubDate>Thu, 20 Nov 2008 16:22:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/ognac/archive/2008/11/21/161815.aspx</guid><wfw:comment>http://blogs.wankuma.com/ognac/comments/161815.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/ognac/comments/commentRss/161815.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/ognac/archive/2008/11/21/161815.aspx#comment</comments><slash:comments>14</slash:comments><trackback:ping>http://blogs.wankuma.com/ognac/services/trackbacks/161815.aspx</trackback:ping><source url="http://blogs.wankuma.com/ognac/rss.aspx">Ognacの雑感</source><description>&lt;P&gt;開発標準に1メソッドは50行以内という規約があったりします。&lt;BR&gt;この基準の真意は、50行という数字には意味がなく、この制限を設けないと、べた書きをする開発者が続出するから、仕方なく、設定していると聞きマした。&lt;BR&gt;センスのある開発者は、1メソッドか何百行になっても、読みやすいのでずか、センスがない人は、数十行でも読みにくいです。&lt;BR&gt;1メソッドn行以内という制約を設けることで、べた書きする人が少ないなるそうです。&lt;BR&gt;その趣旨の適用のために、センスのある開発者に「n行制約」で泣いて貰っていると聞きます。&lt;BR&gt;　センスある開発者からみると、「なんで、彼らに足を引っ張られな、あかんねん」という言う分もあるのですが、比率的には、無センスの人が多いのだそうです。プロジェクト運営を円滑にするって難しいものです。&lt;BR&gt;同様な規約に、ループのネストは二重まで、とか、再帰禁止とか継承は二重までとかあるそうです。&lt;BR&gt;「無センスなプログラマの存在を排除せよ」は暴論で否定しますが、健全な開発体制に与える負の要素も感じます。&lt;BR&gt;この矛盾感は解消されないのでしょうね。オフショアで特に感じました。&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/ognac/aggbug/161815.aspx" width = "1" height = "1" /&gt;</description><dc:creator>Ｏｇｎａｃ</dc:creator></item><item><title>[Java][Silverlight][NetBeans]Web(Java) + Silverlight2</title><link>http://blogs.wankuma.com/kazuki/archive/2008/11/21/161814.aspx</link><pubDate>Thu, 20 Nov 2008 16:11:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/kazuki/archive/2008/11/21/161814.aspx</guid><wfw:comment>http://blogs.wankuma.com/kazuki/comments/161814.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/kazuki/comments/commentRss/161814.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/kazuki/archive/2008/11/21/161814.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.wankuma.com/kazuki/services/trackbacks/161814.aspx</trackback:ping><source url="http://blogs.wankuma.com/kazuki/rss.aspx">かずきのBlog</source><description>&lt;p&gt;NetBeansも6.5の正式版が出て、Silverlight2も正式版が出たばっかりということなので両方使って簡単なものを作ってみようと思う。&lt;br&gt;Silverlight2を使うので、クライアント側はSilverlight2を使わなければならない。&lt;br&gt;なので、サーバーはJavaでWebサービスを作るようにしてみる。&lt;/p&gt; &lt;h1&gt;NetBeans側&lt;/h1&gt; &lt;p&gt;作るWebサービスは、NetBeansに付属してくるサンプルデータベースの中にあるCUSTOMERテーブルの中身を返すものにしてみる。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/JavaSilverlightNetBeansWebJavaSilverligh_C6E/image.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="171" alt="image" src="http://kazuki.wankuma.com/images/2008/JavaSilverlightNetBeansWebJavaSilverligh_C6E/image_thumb.png" width="244" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;とりあえずNetBeansでWebアプリケーションを新規作成する。とりあえず、フレームワークを何も選択しないで素のWebアプリケーションにしてみた。&lt;/p&gt; &lt;p&gt;プロジェクトを作ったらソースパッケージに適当なパッケージ（自分の作ったプログラムではcom.wankuma.kazukiにした）を作ってそこにWebサービスを新規作成する。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/JavaSilverlightNetBeansWebJavaSilverligh_C6E/image_3.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="123" alt="image" src="http://kazuki.wankuma.com/images/2008/JavaSilverlightNetBeansWebJavaSilverligh_C6E/image_thumb_3.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;新規にサービスを作ると、下のようなエラーが起きる。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/JavaSilverlightNetBeansWebJavaSilverligh_C6E/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="81" alt="image" src="http://kazuki.wankuma.com/images/2008/JavaSilverlightNetBeansWebJavaSilverligh_C6E/image_thumb_4.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;クイックフィックスでとりあえずオペレーションを１つ追加する。名前はgetCustomersにした。&lt;br&gt;とりあえず、戻り値はStringにしておく。&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:d421e158-d7c1-47fc-b745-7e9c408fa22a" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="java"&gt;/**
 *
 * @author Kazuki
 */
@WebService()
public class CustomerService {

    /**
     * Web service operation
     */
    @WebMethod(operationName = "getCustomers")
    public String getCustomers() {
        //TODO 実装コードをここに記述します:
        return null;
    }

}&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;次に、Customerのデータをとってくるためのクラスを作る。&lt;br&gt;ここはJPAでやろうと思う。新規作成で、データベースからのエンティティークラスを使いCustomerテーブルのエンティティを作成する。&lt;br&gt;Customerテーブルのエンティティを作ると関連があるのかDiscountCodeクラスも作られる。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/JavaSilverlightNetBeansWebJavaSilverligh_C6E/image_5.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="104" alt="image" src="http://kazuki.wankuma.com/images/2008/JavaSilverlightNetBeansWebJavaSilverligh_C6E/image_thumb_5.png" width="221" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;DBアクセスの処理を書く前に、Java DB ドライバをライブラリから追加しておく。&lt;br&gt;そうして、CustomerServiceに以下のようなコードを書く。要は全件とってくるだけ。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:4fd097ba-f3e9-4904-9b1a-c1a3c89ab28a" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="java"&gt;@WebService()
public class CustomerService {

    @PersistenceContext
    private EntityManager em;
    /**
     * Web service operation
     */
    @WebMethod(operationName = "getCustomers")
    public CustomerResult[] getCustomers() {
        // DBからデータ取得
        List&amp;lt;Customer&amp;gt; customers = (List&amp;lt;Customer&amp;gt;) em.createQuery("select c from Customer c").getResultList();

        // 戻り値用のリストを作る
        List&amp;lt;CustomerResult&amp;gt; results = new ArrayList&amp;lt;CustomerResult&amp;gt;();
        for (Customer c : customers) {
            // 詰め替え
            CustomerResult result = new CustomerResult();
            result.setCustomerId(c.getCustomerId());
            result.setName(c.getName());
            result.setEmail(c.getEmail());
            results.add(result);
        }
        // 配列にして戻す
        return results.toArray(new CustomerResult[results.size()]);
    }

}
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;CustomerResultクラスはcustomerIdプロパティとnameプロパティとemailプロパティの３つを持っただけのシンプルなクラスです。もちろんSerializableを実装する形で作る。&lt;/p&gt;
&lt;p&gt;これで基本的に完成。Webサービスをテストからテストも可能になってる。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/JavaSilverlightNetBeansWebJavaSilverligh_C6E/image_6.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="217" alt="image" src="http://kazuki.wankuma.com/images/2008/JavaSilverlightNetBeansWebJavaSilverligh_C6E/image_thumb_6.png" width="461" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;テスト画面は下のような感じになる。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/JavaSilverlightNetBeansWebJavaSilverligh_C6E/image_7.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="219" alt="image" src="http://kazuki.wankuma.com/images/2008/JavaSilverlightNetBeansWebJavaSilverligh_C6E/image_thumb_7.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;ボタンを押すことで実行結果の確認も出来る。いい感じ。&lt;/p&gt;
&lt;h1&gt;Silverlight2側&lt;/h1&gt;
&lt;p&gt;SilverlightJavaという名前でSilverlightアプリケーションを作成する。&lt;br&gt;まずは、サービス参照を追加する。追加するのはもちろんJavaで作ったサービス。&lt;/p&gt;
&lt;p&gt;JavaのサービスのWSDLへのURLを指定すると普通にサービス参照に追加される。&lt;br&gt;名前をつけるのがめんどくさかったので、とりあえずServiceReference1という名前で参照した。&lt;/p&gt;
&lt;p&gt;Page.xaml.csでは、Webサービスを単純に呼び出して結果をDataContextに入れているだけのシンプル実装。&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:9b2d8845-8d41-48cb-a99a-52ee5c509ffd" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c#"&gt;public partial class Page : UserControl
{
    public Page()
    {
        InitializeComponent();
    }

    private void UserControl_Loaded(object sender, RoutedEventArgs e)
    {
        // 処理を呼び出し
        var client = new ServiceReference1.CustomerServiceClient();
        client.getCustomersCompleted += new EventHandler&amp;lt;SilverlightJava.ServiceReference1.getCustomersCompletedEventArgs&amp;gt;(client_getCustomersCompleted);
        client.getCustomersAsync(client);
    }

    void client_getCustomersCompleted(object sender, SilverlightJava.ServiceReference1.getCustomersCompletedEventArgs e)
    {
        // 実行結果をDataContextへ
        DataContext = e.Result;
    }
}
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt; 後はXAMLで見た目を整えれば大丈夫。今回はDataGridに単純に表示するだけにした。&lt;/p&gt;
&lt;p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:7a5fba62-ee6e-421c-ae8b-7ad83fbbc048" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="xml"&gt;&amp;lt;UserControl xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"  x:Class="SilverlightJava.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width="400" Height="300" Loaded="UserControl_Loaded"&amp;gt;
    &amp;lt;Grid x:Name="LayoutRoot" Background="White"&amp;gt;
        &amp;lt;data:DataGrid x:Name="dataGrid" ItemsSource="{Binding}" /&amp;gt;
    &amp;lt;/Grid&amp;gt;
&amp;lt;/UserControl&amp;gt;
&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;これでSilverlight側もおしまい。&lt;/p&gt;
&lt;h1&gt;仕上げ&lt;/h1&gt;
&lt;p&gt;これでWebサービスとSiliverlight2の両方を実行してもエラーが出てしまう。&lt;br&gt;これは、WebサービスとSilverlightをホストしてるサーバーのドメインが違うからおきてしまうらしい。&lt;/p&gt;
&lt;p&gt;まぁSilverlightからWebサービスが呼び放題とかどうよ？って感じになるからね。&lt;/p&gt;
&lt;p&gt;これを、呼び出せるようにするにはWebサービス側にclientaccesspolicy.xmlという名前のファイルを置いてやる必要がある。置く場所は、Webサービスのある側のルートに置くらしい。つまり、http://ドメイン/clientaccesspolicy.xmlでアクセスできないといけない。&lt;/p&gt;
&lt;p&gt;実際には、何処に何をアクセスさせるか決めないといけないけど、とりあえずは全アクセス許可で作った。&lt;/p&gt;
&lt;p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:2ae16577-fc61-457c-a172-70743b5f179e" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="xml"&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;
&amp;lt;access-policy&amp;gt;
  &amp;lt;cross-domain-access&amp;gt;
    &amp;lt;policy&amp;gt;
      &amp;lt;allow-from http-request-headers="*"&amp;gt;
        &amp;lt;domain uri="*"/&amp;gt;
      &amp;lt;/allow-from&amp;gt;
      &amp;lt;grant-to&amp;gt;
        &amp;lt;resource path="/" include-subpaths="true"/&amp;gt;
      &amp;lt;/grant-to&amp;gt;
    &amp;lt;/policy&amp;gt;
  &amp;lt;/cross-domain-access&amp;gt;
&amp;lt;/access-policy&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;これをGlassFishのpersonalDomain/docrootに置いて実行する。&lt;br&gt;今度は無事実行される。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/JavaSilverlightNetBeansWebJavaSilverligh_C6E/image_8.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="197" alt="image" src="http://kazuki.wankuma.com/images/2008/JavaSilverlightNetBeansWebJavaSilverligh_C6E/image_thumb_8.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;いい感じ。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/kazuki/aggbug/161814.aspx" width = "1" height = "1" /&gt;</description><dc:creator>kazuki@wankuma.com (かずき)</dc:creator></item><item><title>FolderShare終了、Live Syncへ</title><link>http://blogs.wankuma.com/katamari/archive/2008/11/20/161811.aspx</link><pubDate>Thu, 20 Nov 2008 14:50:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/katamari/archive/2008/11/20/161811.aspx</guid><wfw:comment>http://blogs.wankuma.com/katamari/comments/161811.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/katamari/comments/commentRss/161811.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/katamari/archive/2008/11/20/161811.aspx#comment</comments><slash:comments>2</slash:comments><trackback:ping>http://blogs.wankuma.com/katamari/services/trackbacks/161811.aspx</trackback:ping><source url="http://blogs.wankuma.com/katamari/rss.aspx">katamari.wankuma.com</source><description>&lt;p&gt;　ファイル共有サービスの、Windows Live FolderShareがサービスを終了し、12月からWindows Live Syncがリリースされると&lt;a href="http://foldershareteam.spaces.live.com/Blog/cns!9D186A323DE6761!1646.entry"&gt;開発チームBlog&lt;/a&gt; で発表がありました。FolderShareユーザーにはメールも届いています。Blogによると（メールよりBlogの方が情報多い）、Live SyncはFolderShareと比べ&lt;/p&gt; &lt;ul&gt; &lt;li&gt;20までのフォルダ、2万までのファイルの同期が可能&lt;/li&gt; &lt;li&gt;Live IDとの統合（FolderShareはLive IDではありませんでした）&lt;/li&gt; &lt;li&gt;ゴミ箱との統合（FolderShareはゴミ箱用フォルダがありました）&lt;/li&gt; &lt;li&gt;WindowsとMacクライアントの提供&lt;/li&gt; &lt;li&gt;Unicodeサポート（FolderShareは日本語が文字化けしていました）&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;とのこと。Live Syncリリース後にFolderShareは使用できなくなり、Live Syncへのアップグレードが通知されるとあります。アップグレードにより自動でLive Syncへ移行できるようですが、多くのフォルダを同期していた場合、自分で再構築する必要があるようです。&lt;/p&gt; &lt;p&gt;&lt;a href="http://katamari.wankuma.com/images/FolderShareLiveSync_14F1C/WindowsLiveSyncreplacingFolderShareWhatyouneedtoknow.png"&gt;&lt;img title="Windows Live Sync replacing FolderShare What you need to know" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="240" alt="Windows Live Sync replacing FolderShare What you need to know" src="http://katamari.wankuma.com/images/FolderShareLiveSync_14F1C/WindowsLiveSyncreplacingFolderShareWhatyouneedtoknow_thumb.png" width="206" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;　2005年に買収して、Liveブランドとして今年3月にアップデートされましたが、そのままひっそりと？　終了という感じでしょうか。「The Windows Live Sync (formerly FolderShare) team」とあるので、開発チームは同じなのかな？&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/katamari/aggbug/161811.aspx" width = "1" height = "1" /&gt;</description><dc:creator>ＪＺ５ &lt;jz5@katamari.jp&gt;</dc:creator></item><item><title>[VMWare]VMWare Server 2をVistaに入れる</title><link>http://blogs.wankuma.com/kazuki/archive/2008/11/20/161810.aspx</link><pubDate>Thu, 20 Nov 2008 14:16:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/kazuki/archive/2008/11/20/161810.aspx</guid><wfw:comment>http://blogs.wankuma.com/kazuki/comments/161810.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/kazuki/comments/commentRss/161810.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/kazuki/archive/2008/11/20/161810.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.wankuma.com/kazuki/services/trackbacks/161810.aspx</trackback:ping><source url="http://blogs.wankuma.com/kazuki/rss.aspx">かずきのBlog</source><description>&lt;p&gt;ダウンロードして、キーを登録してインストールは普通に出来た。&lt;br&gt;YESマンでいいのは素晴らしい。&lt;/p&gt; &lt;p&gt;VMWare Server2でびっくりしたことなんだけど、管理画面がWebベースになっちゃってる。&lt;br&gt;しかも起動すると証明書がどうのって言われて、ログイン画面までがめんどくさい。&lt;/p&gt; &lt;p&gt;そして、ログイン画面ではAdministratorでログインしないといけない。&lt;br&gt;Vistaではオフになってるのでログインできない！！&lt;br&gt;ということでAdministratorを有効にしてパスワード入れてログインする。&lt;/p&gt; &lt;p&gt;後はPermissionというタブで自分のアカウントをAdministratorsのロールで登録しておく。&lt;br&gt;これでよさげ？&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;そして、イメージを作成してあまってるOSのCDをドライブにセットして起動！！&lt;br&gt;とやるとVMWare Remote Console Plug-inのインストールをしないといけないといわれる。&lt;/p&gt; &lt;p&gt;仕方ないのでインストール。因みに画面はこんな感じ。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/VMWareVMWareServer2Vista_14723/image.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="192" alt="image" src="http://kazuki.wankuma.com/images/2008/VMWareVMWareServer2Vista_14723/image_thumb.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;インストールが終わると、ブラウザが落ちてしまった。（落としますかって聞かれてはいを押したから当然なんだけど）&lt;/p&gt; &lt;p&gt;再度立ち上げてついに起動か！！と思うと次は、「あなたはAdministratorじゃない」みたいなエラーが出ている。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/VMWareVMWareServer2Vista_14723/image_3.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="190" alt="image" src="http://kazuki.wankuma.com/images/2008/VMWareVMWareServer2Vista_14723/image_thumb_3.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;うむぅ…。Administratorで起動しないのがいけなかったのだろうか？&lt;br&gt;でも、普段使ってるユーザはAdministratorsに属してるんだけどなぁ。ということで、IEを管理者権限で実行して再度挑戦！&lt;/p&gt; &lt;p&gt;そうすると、無事コンソールが起動した！！！やったね。後はインストールするだけだ。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/VMWareVMWareServer2Vista_14723/image_4.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="202" alt="image" src="http://kazuki.wankuma.com/images/2008/VMWareVMWareServer2Vista_14723/image_thumb_4.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;次の山場はネットワークかな…？&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/kazuki/aggbug/161810.aspx" width = "1" height = "1" /&gt;</description><dc:creator>kazuki@wankuma.com (かずき)</dc:creator></item><item><title>今週は福岡勉強会です。</title><link>http://blogs.wankuma.com/utsusemi/archive/2008/11/20/161786.aspx</link><pubDate>Thu, 20 Nov 2008 05:09:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/utsusemi/archive/2008/11/20/161786.aspx</guid><wfw:comment>http://blogs.wankuma.com/utsusemi/comments/161786.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/utsusemi/comments/commentRss/161786.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/utsusemi/archive/2008/11/20/161786.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.wankuma.com/utsusemi/services/trackbacks/161786.aspx</trackback:ping><source url="http://blogs.wankuma.com/utsusemi/rss.aspx">虚蝉の脱・七転八倒Blog</source><description>&lt;p&gt;件名の通り、福岡勉強会が今週末に開催されます。&lt;/p&gt; &lt;p&gt;資料の申し込みはそろそろ終了ですが、&lt;br&gt;当日飛び込みで来ていただいても席の方は用意できます。&lt;/p&gt; &lt;p&gt;皆様お誘い合わせの上ご参加ください。&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.wankuma.com/seminar/20081122fukuoka04/Default.aspx"&gt;詳細・申し込みはこちら&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;今回、既にやらかしてしまったことに先ほど気づきました。&lt;/p&gt; &lt;p&gt;緊張する人を緊張するタイミングで投入してしまうという&lt;br&gt;ポカをかましてしまってます。&lt;/p&gt; &lt;p&gt;最大限フォローさせていただきます。&lt;/p&gt; &lt;p&gt;申し訳ないです。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/utsusemi/aggbug/161786.aspx" width = "1" height = "1" /&gt;</description><dc:creator>うつせみ（虚蝉）</dc:creator></item><item><title>刑事とプログラマの共通点</title><link>http://blogs.wankuma.com/rti/archive/2008/11/20/161782.aspx</link><pubDate>Thu, 20 Nov 2008 04:38:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/rti/archive/2008/11/20/161782.aspx</guid><wfw:comment>http://blogs.wankuma.com/rti/comments/161782.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/rti/comments/commentRss/161782.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/rti/archive/2008/11/20/161782.aspx#comment</comments><slash:comments>8</slash:comments><trackback:ping>http://blogs.wankuma.com/rti/services/trackbacks/161782.aspx</trackback:ping><source url="http://blogs.wankuma.com/rti/rss.aspx">R.Tanaka.Ichiro's Blog</source><description>&lt;P align=center&gt;&lt;FONT color=#006400 size=6&gt;刑事とプログラマの共通点&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;・経験と勘が物をいう&lt;/P&gt;
&lt;P&gt;・足を使って情報収集が基本&lt;/P&gt;
&lt;P&gt;・まずは疑うことから始める&lt;/P&gt;
&lt;P&gt;・容疑者を徹底的に尾行する&lt;/P&gt;
&lt;P&gt;・長時間の張り込みをする&lt;/P&gt;
&lt;P&gt;・汗だくでホシをあげようとすると、賢い奴が出てきて推理力を働かせて事件を解決してしまう&lt;/P&gt;
&lt;P&gt;たった今、果てしない戦いの末、僕なりに出した結論です。&lt;BR&gt;ちなみに、刑事のイメージはドラマから得たものですｗ&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/rti/aggbug/161782.aspx" width = "1" height = "1" /&gt;</description><dc:creator>Ｒ・田中一郎</dc:creator></item><item><title>PIAB の中身を見てみた</title><link>http://blogs.wankuma.com/nakamura/archive/2008/11/20/161776.aspx</link><pubDate>Thu, 20 Nov 2008 02:30:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/nakamura/archive/2008/11/20/161776.aspx</guid><wfw:comment>http://blogs.wankuma.com/nakamura/comments/161776.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/nakamura/comments/commentRss/161776.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/nakamura/archive/2008/11/20/161776.aspx#comment</comments><slash:comments>1</slash:comments><trackback:ping>http://blogs.wankuma.com/nakamura/services/trackbacks/161776.aspx</trackback:ping><source url="http://blogs.wankuma.com/nakamura/rss.aspx">Nakamura Blog</source><description>&lt;h4&gt;はじめに&lt;/h4&gt;
&lt;p&gt;
「使っているものの仕組みをしれ！」みたいな教えを以前受けた気がするので、
Policy Injection Application Block のソースコードを読んでみました。
&lt;p&gt;
&lt;p&gt;
先日のエントリ『&lt;a href="http://blogs.wankuma.com/nakamura/archive/2008/11/18/161633.aspx"&gt;PIABで属性を使ってインターセプト対象メソッドを指定する&lt;/a&gt;』で作成したサンプルの
&lt;/p&gt;
&lt;pre name="code" class="c#"&gt;
var animal = PolicyInjection.Create&amp;lt;Wankuma&amp;gt;();
&lt;/pre&gt;
&lt;p&gt;
の部分で何をやっているのかを、ざっと追っていきます。
&lt;/p&gt;


&lt;h4&gt;PolicyInjection クラス&lt;/h4&gt;

&lt;h5&gt;Create メソッド&lt;/h5&gt;
&lt;pre name="code" class="c#"&gt;
public static class PolicyInjection
{
    private static volatile PolicyInjector defaultPolicyInjector;
    private static readonly object singletonLock = new object();

    public static TObject Create&amp;lt;TObject&amp;gt;(params object[] args)
    {
        return DefaultPolicyInjector.Create&amp;lt;TObject&amp;gt;(args);
    }    
&lt;/pre&gt;
&lt;p&gt;
デフォルトの PolicyInjector を取得して、Create メソッドを呼んでいます。
&lt;/p&gt;

&lt;h5&gt;DefaultPolicyInjector プロパティ&lt;/h5&gt;
&lt;pre name="code" class="c#"&gt;
private static PolicyInjector DefaultPolicyInjector
{
    get
    {
        if( defaultPolicyInjector == null)
        {
            lock(singletonLock)
            {
                if(defaultPolicyInjector == null)
                {
                    IConfigurationSource configurationSource =
                        ConfigurationSourceFactory.Create();
                    defaultPolicyInjector = GetInjectorFromConfig(configurationSource);
                }
            }
        }
        return defaultPolicyInjector;
    }
}

private static PolicyInjector GetInjectorFromConfig(IConfigurationSource configurationSource)
{
    PolicyInjectorFactory injectorFactory = new PolicyInjectorFactory(configurationSource);
    return injectorFactory.Create();
}
&lt;/pre&gt;
&lt;p&gt;
構成ファイルの内容を PolicyInjectorFactory に渡し、Create メソッドで PolicyInjector を生成してます。
初めてこのプロパティを使うときに、1回だけ生成されるみたいですね。
&lt;/p&gt;


&lt;h4&gt;PolicyInjectorFactory クラス&lt;/h4&gt;

&lt;h5&gt;Create メソッド&lt;/h5&gt;
&lt;pre name="code" class="c#"&gt;
public class PolicyInjectorFactory
{
    public PolicyInjector Create()
    {
        return EnterpriseLibraryFactory.BuildUp&amp;lt;PolicyInjector&amp;gt;(configurationSource);
    }
&lt;/pre&gt;
&lt;p&gt;
EnterpriseLibraryFactory は内部で ObjectBuilder を使って PolicyInjector を生成しています。
&lt;/p&gt;


&lt;h4&gt;PolicyInjector クラス&lt;/h4&gt;

&lt;h5&gt;Create メソッド&lt;/h5&gt;
&lt;pre name="code" class="c#"&gt;
[CustomFactory(typeof(PolicyInjectorCustomFactory))]
public abstract class PolicyInjector
{
    public object Create(Type typeToCreate, Type typeToReturn, params object[] args)
    {
        // 構成ファイルや属性をチェックして、型に適用するポリシーを取り出す
        PolicySet policiesForThisType = policies.GetPoliciesFor(typeToCreate);

        // インターセプト可能かどうかチェックする。
        // インターセプト出来ない場合は ArgumentException を発生させる。
        EnsureTypeIsInterceptable(typeToReturn, policiesForThisType);

        return DoCreate(typeToCreate, typeToReturn, policiesForThisType, args);
    }
&lt;/pre&gt;
&lt;p&gt;
インターセプト可能かどうかの判断基準は「ポリシーが指定されているか」「MarshalByRefObject を継承しているか」など。PolicyInjector の実装によって異なります。
あと、実際にインスタンスを生成しているのは DoCreate メソッド。
&lt;/p&gt;

&lt;h5&gt;DoCreate メソッド&lt;/h5&gt;
&lt;pre name="code" class="c#"&gt;
protected virtual object DoCreate(Type typeToCreate, Type typeToReturn, PolicySet policiesForThisType, object[] arguments)
{
    object target = Activator.CreateInstance(typeToCreate, arguments);
    return DoWrap(target, typeToReturn, policiesForThisType);
}
&lt;/pre&gt;
&lt;p&gt;
リフレクションを使ってインスタンスを生成したあと、DoWrap メソッド呼んでいますね。
DoWrap メソッドは abstract なので、今回は RemotingPolicyInjector クラスの DoWrap を見てみる。
&lt;/p&gt;

&lt;h4&gt;RemotingPolicyInjector クラス&lt;/h4&gt;

&lt;h5&gt;DoWrap メソッド&lt;/h5&gt;
&lt;pre name="code" class="c#"&gt;
[ConfigurationElementType(typeof(RemotingInjectorData))]
public class RemotingPolicyInjector : PolicyInjector
{
    protected override object DoWrap(object instance, Type typeToReturn, PolicySet policiesForThisType)
    {
        if (PolicyRequiresInterception(policiesForThisType))
        {
            // instance が既に RealProxy でラップされている場合は、ラップを解いて渡す。
            // ラップされていない場合はそのまま渡す。
            InterceptingRealProxy proxy =
                new InterceptingRealProxy(UnwrapTarget(instance), typeToReturn, policiesForThisType);
            return proxy.GetTransparentProxy();
        }
        return instance;
    }
&lt;/pre&gt;
&lt;p&gt;
InterceptingReadProxy は RealProxy を継承したクラスです。
透過プロキシを返しているのかぁ。
&lt;/p&gt;


&lt;h4&gt;InterceptingReadProxy クラス&lt;/h4&gt;

&lt;h5&gt;コンストラクタ&lt;/h5&gt;
&lt;pre name="code" class="c#"&gt;
public InterceptingRealProxy(object target, Type classToProxy, PolicySet policies)
    : base(classToProxy)
{
    this.target = target;
    this.typeName = target.GetType().FullName;
    Type targetType = target.GetType();

    memberHandlers = new Dictionary&amp;lt;MethodBase, HandlerPipeline&amp;gt;();

　　// クラスの情報から CallHandler を取得して memberHandlers に追加します
    AddHandlersForType(targetType, policies);

    // ここではベースクラスから
    Type baseTypeIter = targetType.BaseType;
    while (baseTypeIter != null &amp;&amp; baseTypeIter != typeof(object))
    {
        AddHandlersForType(baseTypeIter, policies);
        baseTypeIter = baseTypeIter.BaseType;
    }

    foreach (Type inter in targetType.GetInterfaces())
    {
        // クラスとインタフェースをマッピングしたあと、
        // クラスのメソッド情報をもとに取得した CallHandler を
        // インタフェースのメソッド用の CallHandler として再登録している
        AddHandlersForInterface(targetType, inter);
    }        
}
&lt;/pre&gt;
&lt;p&gt;
コンストラクタ内でクラスの情報をもとに CallHandler を取得して、メンバに保存しています。
&lt;/p&gt;
&lt;p&gt;
Create の流れはここで終了。でもせっかくなので、メソッドが実際にインターセプトされる処理も見てみます。
&lt;/p&gt;

&lt;h5&gt;Invoke メソッド&lt;/h5&gt;
&lt;pre name="code" class="c#"&gt;
public class InterceptingRealProxy : RealProxy, IRemotingTypeInfo
{
    public override IMessage Invoke(IMessage msg)
    {
        IMethodCallMessage callMessage = (IMethodCallMessage)msg;

        // メソッドをインターセプトして実行する CallHandler を取得する
        HandlerPipeline pipeline;
        if (memberHandlers.ContainsKey(callMessage.MethodBase))
        {
            pipeline = memberHandlers[callMessage.MethodBase];
        }
        else
        {
            pipeline = new HandlerPipeline();
        }

        RemotingMethodInvocation invocation = new RemotingMethodInvocation(callMessage, target);
        IMethodReturn result =
            pipeline.Invoke(
                invocation,
                delegate(IMethodInvocation input, GetNextHandlerDelegate getNext)
                {
                    try
                    {
                        // インターセプト対象のメソッドを実行
                        object returnValue = callMessage.MethodBase.Invoke(target, invocation.Arguments);
                        return input.CreateMethodReturn(returnValue, invocation.Arguments);
                    }
                    catch (TargetInvocationException ex)
                    {
                        // The outer exception will always be a reflection exception; we want the inner, which is
                        // the underlying exception.
                        return input.CreateExceptionMethodReturn(ex.InnerException);
                    }
                });
        return ((RemotingMethodReturn)result).ToMethodReturnMessage();
    }
&lt;/pre&gt;
&lt;p&gt;
インターセプト対象メソッドの情報をもとに HandlerPipeline を取得して、
その Invoke メソッドを呼び出しているのか。
インターセプトされたメソッドは、リフレクション(MethodBase.Invoke)で呼び出しています。
&lt;/p&gt;


&lt;h4&gt;HandlerPipeline クラス&lt;/h4&gt;

&lt;h5&gt;Invoke メソッド&lt;/h5&gt;
&lt;pre name="code" class="c#"&gt;
public class HandlerPipeline
{
    private List&amp;lt;ICallHandler&amp;gt; handlers;

    public IMethodReturn Invoke(IMethodInvocation input, InvokeHandlerDelegate target)
    {
        if( handlers.Count == 0 )
        {
            return target(input, null);
        }

        int handlerIndex = 0;

        // メソッドをインターセプトして実行する処理を、連鎖して呼び出す
        IMethodReturn result = handlers[0].Invoke(input, delegate
                                  {
                                      ++handlerIndex;
                                      if(handlerIndex &amp;lt; handlers.Count)
                                      {
                                          return handlers[handlerIndex].Invoke;
                                      }
                                      else
                                      {
                                          return target;
                                      }
                                  });
        return result;
    }
&lt;/pre&gt;
&lt;p&gt;
構成ファイルなどで指定した CallHander がこのクラスに登録されています。
先に登録されているハンドラを呼び出して、最後にインターセプト対象のメソッドが呼ばれる・・・と。
&lt;/p&gt;


&lt;h4&gt;最後に&lt;/h4&gt;
&lt;p&gt;
PIAB では RealProxy を使って AOP を実現しているのか！
&lt;/p&gt;
&lt;img src ="http://blogs.wankuma.com/nakamura/aggbug/161776.aspx" width = "1" height = "1" /&gt;</description><dc:creator>なかむら</dc:creator></item><item><title>本名で行きます。</title><link>http://blogs.wankuma.com/kaya/archive/2008/11/20/161772.aspx</link><pubDate>Thu, 20 Nov 2008 02:19:00 GMT</pubDate><guid isPermaLink="true">http://blogs.wankuma.com/kaya/archive/2008/11/20/161772.aspx</guid><wfw:comment>http://blogs.wankuma.com/kaya/comments/161772.aspx</wfw:comment><wfw:commentRss>http://blogs.wankuma.com/kaya/comments/commentRss/161772.aspx</wfw:commentRss><comments>http://blogs.wankuma.com/kaya/archive/2008/11/20/161772.aspx#comment</comments><slash:comments>1</slash:comments><trackback:ping>http://blogs.wankuma.com/kaya/services/trackbacks/161772.aspx</trackback:ping><source url="http://blogs.wankuma.com/kaya/rss.aspx">夏椰の東屋</source><description>&lt;P&gt;こんにちは、皆様。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.wankuma.com/kaya/archive/2008/11/13/161278.aspx"&gt;ライブ錬金術霊視&lt;/A&gt;を受けて、且つフミヨミさん、インディゴさんとメールのやり取りをしていたんですが、&lt;/P&gt;
&lt;P&gt;私に&lt;A href="http://doreen.jp/angelguide/009iyashi.html"&gt;ライトワーカー&lt;/A&gt;の属性がある事に気づきました。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;(リンク先は&lt;A href="http://doreen.jp/index.html"&gt; ドリーン・バーチュー 日本語公式Webサイト &lt;/A&gt;ってサイトの1ページです)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;今まで、自分(ここでいう自分=美保です)は、まぁダークな人生を送ってきて、&lt;/P&gt;
&lt;P&gt;自分を守るために、いろいろな事に心を閉ざしたり、&lt;/P&gt;
&lt;P&gt;今川(@仕事)だったり、夏椰(@オンライン)だったりを作り上げて、&lt;/P&gt;
&lt;P&gt;そのフィルターを通じて、人々とコネクトさせてもらってきました。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;でも、本質の私はやっぱりお人好しっていうか、&lt;/P&gt;
&lt;P&gt;人のために存在していたい思いが強いので、&lt;/P&gt;
&lt;P&gt;今川にも夏椰にも負担を強いてきたし、結果として自分自身も歪だったと思います。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;そんな事をして生きてきたから、&lt;/P&gt;
&lt;P&gt;当然拒食も鬱病にもなったんだと気づきました。&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#a9a9a9 size=1&gt;#本当は拒食の時点で気づけよって感じですが･･･。まぁ若かったんでしょ(w&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#a9a9a9 size=1&gt;# 22歳だったしぃ&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;で、霊視を受けて、自分が自分の中にダイブする(瞑想する)ようになり、&lt;/P&gt;
&lt;P&gt;空や大地や水や･･･自然に対して、今まで以上にコネクトするようになったんです。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;そういうことをしていくと、&lt;/P&gt;
&lt;P&gt;自分の中でいろいろな言葉がくっついたり、&lt;/P&gt;
&lt;P&gt;映像が頭にひらめいたりするようになるんですよね。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;そうした環境下において、インディゴさんとお話しながら&lt;/P&gt;
&lt;P&gt;ライトワーカーって言葉からいろいろ調べてみた時に、&lt;/P&gt;
&lt;P&gt;自分の頭の中でいろいろなものが繋がり、&lt;/P&gt;
&lt;P&gt;今まで私に必要だったフィルターがいらなくなったんです。&lt;/P&gt;
&lt;P&gt;正確には、まだいるんだけど&lt;/P&gt;
&lt;P&gt;それは社会と繋がる自分であり、魂の自分とはちょっと違う感じです。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;だから、私は今夏椰としてではなく、今川美保として存在して生きたいのです。&lt;/P&gt;
&lt;P&gt;なので、BLOGの表示名もHNと名前を入れ替えました。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;今までの名前で呼びなれている人も多いでしょうから、&lt;/P&gt;
&lt;P&gt;私を夏椰と呼んでもらっても構いません。&lt;/P&gt;
&lt;P&gt;ただ、夏椰と呼んでも反応するのは今川美保だと言うことだけ覚えておいてください。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;私は、これから いろいろなものにコネクトして、&lt;/P&gt;
&lt;P&gt;見えたもの、聞こえたもの、感じたものを書いていきたいと思っています。&lt;/P&gt;
&lt;P&gt;技術関連サイトで、にわかには信じ難い内容になっているかと思います。&lt;/P&gt;
&lt;P&gt;でもね、考えてみてください。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;私達には同じように動いていると感じられる時間ですが&lt;/P&gt;
&lt;P&gt;常に一定の速度で動いてはいないんですよ。&lt;/P&gt;
&lt;P&gt;# @see &amp;nbsp;&lt;A href="http://yujiwatanabe.hp.infoseek.co.jp/s-relativity.htm"&gt;Relativity　特殊相対性理論 中学生にもわかる特殊相対性理論　2002年3月製作&lt;/A&gt; 参照&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;誰にでもある、『嫌な予感がする･･･』とかそういうものを&lt;/P&gt;
&lt;P&gt;もっと的確に捉えて話すことが出来るような世界だと思ってください。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;私達が作っているプログラムや、&lt;/P&gt;
&lt;P&gt;触っているパソコンも&lt;/P&gt;
&lt;P&gt;電気ってエネルギーを使って、&lt;/P&gt;
&lt;P&gt;いろいろなものがコラボレーションして、一つの形を成しているじゃないですか。&lt;/P&gt;
&lt;P&gt;そういう風に、この世界に&lt;/P&gt;
&lt;P&gt;同じようにエネルギーが流れていて、&lt;/P&gt;
&lt;P&gt;私達がそのエネルギーをもらって、お互いにコラボレーションしているんですよ。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;もちろん、技術屋として働いているのに変化はないし、&lt;/P&gt;
&lt;P&gt;この仕事好きだから、&lt;/P&gt;
&lt;P&gt;技術ネタも書くけど、&lt;/P&gt;
&lt;P&gt;そういう技術に携わっている人達にも分るように&lt;/P&gt;
&lt;P&gt;見えた物を美保として伝えていけたらいいなぁって思っています。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;お付き合いくだされば幸いですわ♪(^^)b&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/kaya/aggbug/161772.aspx" width = "1" height = "1" /&gt;</description><dc:creator>今川 美保(夏椰) {Miho Imagawa as Kaya}</dc:creator></item><item><title>Excel 2007か