MATの暇つぶしサイトです。
本職であるプログラムやマリンアクアリウムの話題を綴っていきます。
ものすごい不定期更新です。
フリーウエアのダウンロードはココからどうぞ

最近めちゃ忙しく、職場にDelphiの環境が無いため、アプリのメンテ全然できてません。
しばらくはこの調子っぽいです、スイマセン。

2007年03月21日

タマイタダキ

水槽に新入りが増えました。
タマイタダキイソギンとアフリカンフレームバックピグミーです。
isogin070321.jpg


イソギンは以前ホワイトソックスを喰われてから、恐怖症になっていたのですが、手ごろなサイズと価格、そして淡いグリーン(写真よりもうちょっと緑が濃いです)が綺麗だったので衝動買いしてしまいました。

マリンアクアリストなら一度はやって見たいと思う(はず)のクマノミ×イソギンの光景ですが、カクレはタマイタダキに入りにくいと聞いていたので、無理かな??とあまり期待していなかったのですがウチのカクレ君は普通に入ってくれました。
(人が近づくと餌と勘違いして近寄ってくるので入っている所は中々写真に収めれないのが残念です)

2007年02月25日

パープルタンえらい!

うちのパープルタンはほんと良く働きます。
ライブロックに生えたヒゲ状のコケ(海藻?)をムシャムシャ・・・
1週間でほとんど食べつくしてくれました。

固体によってはあまり食べない物もいるということですが、
当たりだったようです。

2007年02月17日

パープルタン

パープーターン、パープーターン、すばらしい朝にフッフフー
(我ながら古いなw)

ってことで、富山まで遠出して連れてきました。

purpletan1.jpg


体長6cm位とちょっと小ぶりなパープルタン。
メジャーな魚ですけど北陸ではなかなか見つからなかったですし、小さいのも良かったので即効で買いました。
性格がキツイって聞きましたけど、わりと仲良くやってくれてます。

2007年02月15日

半角カナを全角に変換

たまに使うのでメモ

private string ChangeWideKana(string val)
{
  string sHalfChars  = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッ、。ー「」゙゚";
  string sFullChars  = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホ"
                     + "マミムメモヤユヨラリルレロワヲンァィゥェォャュョッ、。ー「」゛゜";
  string sFullCharsB = "  ヴ  ガギグゲゴザジズゼゾダヂヅデド     バビブベボ"
                     + "                                ";
  string sFullCharsP = "                         パピプペポ"
                     + "                                ";
  
  if (val == null) return null;
  if (val.Length == 0) return "";

  StringBuilder result = new StringBuilder();

  int idx = 0;
  while (idx < val.Length)
  {
    char cCur = val[idx];
    int idxCurChar = sHalfChars.IndexOf(cCur);
    if (idxCurChar > -1)
    {
      int char_type = 0; //0:通常 1:濁音 2:半濁音

      //濁音、半濁音のチェック
      if (idx < (val.Length-1))
      {
        if ((val[idx+1] == '゙') && (sFullCharsB[idxCurChar] != ' '))
        {
          char_type = 1;
        }
        else if ((val[idx+1] == '゚') && (sFullCharsP[idxCurChar] != ' '))
        {
          char_type = 2;
        }
      }
      
      //マッピングにより半角→全角変換
      switch (char_type)
      {
        case 0: //普通のカタカナ
          result.Append(sFullChars[idxCurChar]);
          break;
        case 1: //濁音
          result.Append(sFullCharsB[idxCurChar]);
          idx++;
          break;
        case 2: //半濁音
          result.Append(sFullCharsP[idxCurChar]);
          idx++;
          break;                      
      }
    
    }
    idx++;
  }
  return result.ToString();
}

2007年02月14日

バイト数指定で文字列を切り出す

■方式1
private string LeftB(string str,int len)
{
        System.Text.Encoding _encode 
                = System.Text.Encoding.GetEncoding("Shift_JIS");

        byte[] bytes = _encode.GetBytes(str);
        int bytelen = bytes.Length;
        if (len > bytelen) len = bytelen;

        return _encode.GetString(bytes,0,len);
}
※この方法だと最後にゴミコードが残り、他の文字と連結させた場合などに 不具合が発生する場合があるのでお勧めしません。

たとえば次のコードを実行すると。
int len = 5;
string val = "あいうえお";
Debug.WriteLine("[" + LeftB(val,len) + "]" );
Debug.WriteLine("------");
[あい]
------

って出力されると思うけど実際には

[あい------

って出力されてしまいます。

■方式2
ちょっと遅いけど安全
private string LeftB(string str,int len)
{       
        if (str == null) return null;
        if (str.Length == 0) return "";

        System.Text.Encoding _encode 
                = System.Text.Encoding.GetEncoding("Shift_JIS");

        int iResultLen = 0;
        StringBuilder sb = new StringBuilder();
        for (int i=0;i<str.Length;i++)
        {
                char cCur = str[i];
                int iCharLen = _encode.GetByteCount(new char[1]{cCur});
                iResultLen += iCharLen;
                if (iResultLen > len)
                {
                        break;
                }
                
                sb.Append(cCur);
        }
        return sb.ToString();
}

2007年01月28日

TrueCrypt 使い方

1.暗号化ボリュームの作成
 TrueCryptでは仮想ドライブを作成しますが、その仮想ドライブの内容を保存するのが
 暗号化ボリュームです。
 まず、これを作成する必要があります。

 スタートメニューから[TrueCrypt]-[TrueCrypt]を起動し「ボリュームの作成」というボタンをクリック。
 ウィザードが起動するのでとりあえず「次へ」を選択


 ボリュームの位置という画面で暗号化ボリュームのファイルを設定します。
 ファイルでも良いですし、ドライブを選択することも可能です。
 (windowsのインストールされているドライブ全体を選択したら大変なことになると思いますので注意して下さい。)

 TrueCrypt7.jpg
※この例では拡張子無しのファイルとしています。サンプルとしてはあまり良く無いですね。


 

 暗号化方式を選択します。
 「ベンチマーク」をクリックすると、各方式でのパフォーマンスを調べることができます。
 多くの場合はデフォルトのAESで良いのではないでしょうか。

 TrueCrypt8.jpg
 

 
 ボリュームのサイズを設定します。
 後で増やすことは出来ないらしいので慎重に。

 TrueCrypt9.jpg


 パスワードを設定

 TrueCrypt16.jpg
 ※上のように短いパスワードだと、警告が表示されます。


 ボリュームのフォーマット
 デフォルトでも問題無いと思いますので、このまま「フォーマット」をクリック。

 TrueCrypt10.jpg

 暗号化ボリュームのファイルが作成されました。
 (この例では拡張子無しです)

 TrueCrypt11.jpg


 TrueCrypt12.jpg

2.ボリュームのマウント
作成した暗号化ボリュームをOSに認識させます。

 TrueCryptを起動させ、ドライブ一覧からマウント先のドライブとボリュームファイルを選択して
 「マウント」をクリックします。

 TrueCrypt13.jpg


 パスワードを聞いてきますので入力すると・・

 普通のハードディスクの様にWindowsに認識されました。

 TrueCrypt14.jpg

 もちろん普通にファイルを書き込めます。

 TrueCrypt15.jpg

3.ボリュームのアンマウント
 TrueCryptを起動させ「全てアンマウント」をクリックします。
※暗号化ファイルを使い終わったらすぐにアンマウントしましょう。


[補足]
マウントやアンマウントは一々画面を起動して行うのは面倒なのでバッチファイルで行うと便利です。

マウントのコマンドラインの例
("C:\TCImages\IDFiles"をZドライブにマウント)

 C:\Program Files\TrueCrypt\TrueCrypt.exe /v C:\TCImages\IDFiles /lz /a /q /b /e


アンマウントのコマンドラインの例
(Zドライブのマウントを解除)

 C:\Program Files\TrueCrypt\TrueCrypt.exe /dz /q

TrueCrypt インストール

使い勝手の良さそうな暗号化ソフトがあったのでご紹介します。

ポイント
 ・オープンソース
 ・暗号化ファイルを仮想ドライブとして使用する
 ・WindowsでもLinuxでも動作する(暗号化ファイルを共用できる)
 ・外出先でインストールせずに使用可能(USBで持ち運び可能)
 ・ドライブ丸ごと暗号化にも対応
 ・日本語対応

ダウンロード
 本体(truecrypt-4.2a.zip)
  http://www.truecrypt.org/downloads.php
 ランゲージパック(langpack-ja-1.1.1-for-truecrypt-4.2a.zip)
   http://www.truecrypt.org/localizations.php


インストール

1.本体のインストール
 ダウンロードした本体を解凍し"TrueCrypt Setup.exe"を実行する。
 
 midori070103.jpg


2.ランゲージパックのインストール
 ランゲージパックも同様に解凍し、"Language.ja.xml"をTrueCryptのインストール先へ保存する。

 midori070103.jpg

3.表示言語の変更
 スタートメニューから[TrueCrypt]-[TrueCrypt]を起動し、メニューの[Settings]-[Language...]を選択する。

 midori070103.jpg


 次の画面が表示されるので「日本語」を選択する。

 midori070103.jpg

2007年01月03日

ミドリイシ購入

あけましておめでとう御座います。
今年こそ、ハードコーラル満載のハデハデ水槽を作ってやろうと考えているMATです。

さて、正月休みの間だと品揃えも期待できないだろなー。などど思いつつショップへ行ってみますと、かなりの品揃えでびっくり。
ここ最近では最高です。(タイミング悪いだけかもしれませんが)

かなり迷いつつミドリイシを一つ購入
今回は黄色(黄緑?)で、ミドリばっかりだった家の水槽でとってもよく目だってくれます。

midori070103.jpg
(写真では白いですね、本物は黄色っぽいです)


ミドリイシを入れたついでに水質チェック
 亜硝酸:検出されず
 硝酸塩:検出されず
 KH:9
 カルシウム:360mg

うーん、ちょっとKHとカルシウムが足らないっぽい。
リアクタのCO2をちょっと増やして様子見しよう。

2006年12月30日

星になっても忘れないよ

12月は忙しい月でした。連日の朝帰り(勿論仕事)でクタクタです。
でも頑張ったお陰で正月休みはちゃんと取ることが出来ることになりました。

さて久しぶりにじっくり水槽でも見るかな・・・ん?
なにか足らない。。

 エイブルズ!
 デバスズメ×4!!

どうやら水槽を見れていない時に魚が死亡していたようです。
ごめんね。ダメな飼い主で。


しっかし、デバが4匹も死ぬなんて。。
水質を確認したところアンモニア、亜硝酸は検出されず。
比重も1.023で問題なし。
チェルブとかカクレとかもかなり元気なのに。なぜ??

そういえば、購入時に店の兄ちゃんと客のおっちゃんがサンプルで飾ってあった比重計について話してて、その時に販売水槽の水を計ったら(屈折式のヤツで)相当低い値が出てました。
値はちゃんと覚えてませんが、低すぎてビックリするほどだったのを覚えています。
「低比重で飼われた魚は長生きしない」と聞いたことがありますが、もしかしたらこれが原因なのかもしれません。

2006年12月09日

エイブルズ君出て来ておくれよ

エイブルズ君がなかなか出てきてくれない。
おかげで餌もちゃんと食べれていないと思うんだけど、心配だ。
何か手を打たないとダメっぽいな。