2012年10月25日木曜日

CentOSにホスト名でPingが通らない

WindowsPCからCentOSにpingが通らない。
具体的には・・

$ ping 192.168.1.xxx
だと、pingはとおる。
しかし、
$ ping hostname
だと、pingが通らない。

簡単な解決方法はsambaをインストールすること。
これでWindowsPCからホスト名でpingが通ります。


2012年10月23日火曜日

Redmine上でSVNの差分を見ようしたら「リポジトリに、エントリ/リビジョンが存在しません」

正確に言うならば、ALMiniumをインストールし、その上でのRedmineとなります。

日本語ファイル名をSVNリポジトリにコミット、確認をしていたらなぜか「リポジトリに、エントリ/リビジョンが存在しません」。

調べると、iconvがutf8にちゃんと変換出来ないってのが問題のようです。

ロケールをUTF8にすれば解決らしい。
で、実際にはiconvを使うのはapacheになるので、apacheの設定ファイルを修正することで解決した。

自分の所はCentOS 6.2で次の設定で大丈夫でした。

sudo vi /etc/sysconfig/httpd

をして、

HTTPD_LANG=ja_JP.utf8
と設定しました。

その後、
sudo /etc/init.d/httpd restart

2012年1月20日金曜日

XmlSerializerでGenericなリストを使いたい!

XmlSerializerを使って、シリアライズなどするとき、GenericのList等は使えません。
ただ、配列は使用可能なので、次のようなコードで対応します。
 [XmlIgnore]
 public List myHogeList { set; get; }
 [XmlElement("myHogeList")]
 public Hoge[] myHogeArray
 {
  set
  {
   myHogeList = new List();
   myHogeList.AddRange(value);
  }
  get
  {
   return myHogeList.ToArray();
  }
 }

考え方は、XmlIgnoreを使ってシリアライズ対象外に、配列を使って無理矢理Listと相互変換。

2012年1月9日月曜日

WPFのモーダルダイアログの表示位置が上手く設定出来ない場合

ウィンドウのプロパティに「WindowStartupLocation="CenterOwner"」を設定し、「window.ShowDialog();」
としても、思う位置にウィンドウが表示されない。

なんかよくわからないが、window.Owner を設定しないのが原因らしい。
window.Owner = this;
window.ShowDialog();
とすると上手くいくようだ。
ただ、ユーザコントロール上だと
window.Owner = this; 
はできないので、
window.Owner = Window.GetWindow(this);
とするとよい。