2012年6月29日金曜日

ファイルの排他制御のサンプル

C#でファイルの排他制御の動作確認用プログラム。 FileShareの使い方のサンプルです。

using System;
using System.IO;

namespace sample
{
    class Program
    {
        static void Main(string[] args)
        {


            File.WriteAllText("aaa.txt", "sample");

            // 読み込み中に書き込み可能
            Console.WriteLine("------------------");
            Console.WriteLine("FileShare.ReadWrite");
            using (FileStream stream = new FileStream("aaa.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
            {
                using (new StreamWriter("aaa.txt", true))
                {
                    Console.WriteLine("OK write");
                }
                using (new StreamReader("aaa.txt"))
                {
                    Console.WriteLine("OK read");
                }
            }

            // 読み込み中に読み込み可能
            Console.WriteLine("------------------");
            Console.WriteLine("FileShare.Read");

            // FileStreamのデフォルトはFileShare.Read
            using (FileStream stream = new FileStream("aaa.txt", FileMode.Open, FileAccess.Read))
            {
                using (new StreamReader("aaa.txt"))
                {
                    Console.WriteLine("OK read");
                }
                try
                {
                    using (new StreamWriter("aaa.txt", true))
                    {
                        Console.WriteLine("OK write");
                    }
                }
                catch (IOException ex)
                {
                    Console.WriteLine("NG write");
                }
            }
            // 読み込み中に読み込み可能
            Console.WriteLine("------------------");
            Console.WriteLine("FileShare.Write");

            // FileStreamのデフォルトはFileShare.Read
            using (FileStream stream = new FileStream("aaa.txt", FileMode.Open, FileAccess.Read, FileShare.Write))
            {
                using (new StreamWriter("aaa.txt", true))
                {
                    Console.WriteLine("OK write");
                }
                using (new StreamWriter("aaa.txt", true))
                {
                    Console.WriteLine("OK read");
                }
            }
        }
    }
}

2012年6月15日金曜日

Bazaarでproxy設定


BazaarでProxyを設定する方法

環境変数で設定する
http_proxy=http://example.com:8080
https_proxy=https://example.com:8080

プロキシを使いたくないアドレスの設定はカンマ区切りのリスト
no_proxy=local,localhost




2012年6月13日水曜日

Bazaarでプッシュを取り消す


Bazaarでコミットを取り消した後で行うこと。
bzr push --overwrite




Bazaarで最後のコミットを取り消す


bzr uncommit
bzr revert




2012年6月8日金曜日

easyui treegrid 特定の項目のみを更新


findやgetselecedで行を取得した後で必要なプロパティを更新して、refreshを行う。

var row = $('#tt').treegrid('find' id);
row.name = 'new name';
$('#tt').treegrid('refresh', row.id);




2012年6月4日月曜日

CentOSにNGIRCDをインストールする


初期状態のyumではインストールできないため、
必要なリポジトリの追加が必要になります。
リポジトリの追加からIRCDの設定までを順に書いておきます。

■リポジトリの追加
以下のサイトより環境に合わせてダウンロード
http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/

CentOS6の32bitなので、以下のファイルを使いました。
# wget http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/i386/epel-release-6-5.noarch.rpm
# rpm -ivh epel-release-6-5.noarch.rpm

リポジトリが追加されたかの確認。
# yum list |grep ircd

私の環境ではエラーがでてしまいました。。
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again

エラーを回避sするため、以下のファイルを編集します。
# vi /etc/yum.repos.d/epel.repo

#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch

baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch

再度リポジトリが追加されたかの確認。
# yum list |grep ircd
nagios-plugins-ircd.i686             1.4.15-2.el6              epel
ngircd.i686                          18-2.el6                  epel

# yum install ngircd


ngircdの設定変更
# vi /etc/ngircd.conf
[Global]
Listen = 0.0.0.0

ファイアーウォールの設定
以下の行を追加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6667 -j ACCEPT

ngircdの起動
# /etc/init.d/ngircd start

ngircdの自動起動設定
# chkconfig ngircd on

以上でngircdのとりあえず公開する設定が完了


ラベル