2009/02/12(Thr)高速差分コピーツール

はてブ数 2009/02/12 8:13 計算機な日記::ボクと計算機 つーさ

指定した文字列を含むパスを持つファイルを除いて、更新されたファイルだけをコピーします。

EeePCは16GBのSSDがありますが、ちょっと狭いです。なので16GBのSDHCを刺して使ってるのですが、読み書きが遅いのです。この上でプロジェクトを編集して「ビルド」する気にはあまりなれません。なので、一時的にSSDにコピーして仕事して、作業が終わったらこれを使ってSDHCに書き戻そうかという試み。

もともと、FileSystemWatcherでも使うかと思ってたんですが、監視までする必要ないかなぁとかなんとか。xcopyのオプションでなんとかならんかなぁと思って組んだのが、以下。
コピー先に存在しないか、コピー先よりも日時の新しいファイルだけコピーしてくれるバッチファイルです。
ビルド一時ファイルディレクトリ (\bin\~と\obj\~)はコピー対象にしないとかいった設定ができるので便利かなぁ。どうかなぁ。ちょっとまだ使ってみないとわかりませんが。

xcopyfast.bat

    setlocal
    set srcPath=.
    set dstPath=D:\backup
    echo %~n0>>%~n0.$
    echo %~n0.$>>%~n0.$
    xcopy %srcPath%\*.* %dstPath%\ /D /EXCLUDE:%~s0+%~sp0%~n0.$ /E /C /H /Y
    del %~n0.$
    endlocal
    exit

 rem -- コピーしたくないファイルのパスに含まれる文字列を以下に指定のこと --

\bin\
\obj\

2009/01/29(Thr)ネトラジもどき

はてブ数 2009/01/29 3:51 計算機な日記::ソフト作り つーさ

今日は音を録音して、UDPパケットで、LAN内の他のマシンに送りつけるプログラムを書いた。
これによりLAN内の他のマシンが再生している音が別のマシンで拾えるようになった。
ここに、TCPリスナとICY 200 OK、MP3エンコーダつけたら、
簡易ネトラジ放送ソフトができる。音ゲの中継もなんのその
netmidiの機能縮小版とでも言うか。なんか昔からこんなことばっかやってるなぁ。

using System;
using System.Windows.Forms;
using System.Net.Sockets;
using Tsukikage.WinMM.WaveIO;

namespace WinMMTest
{
    public partial class Form1 : Form
    {
        WaveIn wi = new WaveIn(0, 44100, 16, 2);
        UdpClient udp = new UdpClient(29999);

        public Form1() { InitializeComponent(); }

        private void Form1_Load(object sender, EventArgs e)
        {
            wi.OnData = delegate(byte[] d) { udp.Send(d, d.Length, "192.168.24.95", 29999); };
            wi.Start();
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            wi.Close();
            udp.Close();
        }
    }
}

それにしても、言語が高級になりすぎて、俺にはこれをプログラムと呼んでいいのかわからなくなりつつある。それがC#という言語の恐ろしいところだ。

2008/11/19(Wed)続・動的コンパイル

はてブ数 2008/11/19 1:26 計算機な日記::ソフト作り つーさ

動的コンパイルした先のコードで例外が発生すると、スタックトレースの行番号が取れない。
場所 にはメソッド名しか表示されない。コンパイル元がファイルでもダメ。

デバッグ情報を残し、かつ一時ファイルを残す設定にして、後からpdbの読み込みを試みる。

20081119012039.png

えー。

デバッグ出力コンソールくらいしか用意できないのかしら。printfデバッグω
スクリプトととして使うならデバッグ情報が足りねーのは致命的な気がするなぁ。
ある程度、どんなところでバグることが多いかの経験があればまだしも……。
それでもInvalidOperationException とか InvalidCastException だったら目も当てられない。
えーーーー どこーーー???? になること請け合い。

未解決。

関係ないけど。今日、西条に初雪が降りました。明日はもっと冷えるそうです。正直……

2008/11/11(Tue)yieldが使いたい

はてブ数 2008/11/11 4:50 計算機な日記::ソフト作り つーさ

RPGのシナリオスクリプトを、
C#のあるソースファイルのメソッドとして定義し、
C#コンパイラに食わせることを考える。

スクリプトなのだから、スクリプタさんが書く。
文法こそC#だがスクリプトっぽい感覚で書けるように留意する。

RPGなのだから「メッセージを表示してボタン待ち」のような高レベルAPIを用意したい。
スクリプトの実行はそこでブロッキングして、一見処理が止まってるように見せたい。
しかし実際にスレッドまで止めてしまうとゲームが止まってしまう。どうする?

続きを読む

2008/11/09(Sun)QoFの仕様を考えながら

はてブ数 2008/11/10 0:12 計算機な日記::プロコン つーさ

ICPC会津感想文出してついでに問題を解いてみている。

ABCを合計1時間でコーディング。

次はEをやってみた。レイトレーシング。
とりあえず3次元ベクトル演算ライブラリから書き始めて1時間ちょいでsolved。

なんか、解法は知ってるのに結構時間掛かったなぁ。
ベクトル演算のライブラリだけでも持って行くべきだ。

考えてもみれば…… 去年はDPもDFSもBFSもダイクストラも知らずにアジア大会行ってたわけで…… 馬鹿じゃないのwww

はぁ…… 来年…… 来年なぁ。