2009/02/12(Thr)高速差分コピーツール
指定した文字列を含むパスを持つファイルを除いて、更新されたファイルだけをコピーします。
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)ネトラジもどき
今日は音を録音して、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#という言語の恐ろしいところだ。
2009/01/12(Mon).NET から mixer だぁ?
題名の通り。あんまり突っ込んでやるつもりはなかったものの
2008/12/18(Thr)[QoF] Quest of Feena REFINE(仮)
2008/11/19(Wed)続・動的コンパイル
動的コンパイルした先のコードで例外が発生すると、スタックトレースの行番号が取れない。
場所 にはメソッド名しか表示されない。コンパイル元がファイルでもダメ。
デバッグ情報を残し、かつ一時ファイルを残す設定にして、後からpdbの読み込みを試みる。

えー。
デバッグ出力コンソールくらいしか用意できないのかしら。printfデバッグω
スクリプトととして使うならデバッグ情報が足りねーのは致命的な気がするなぁ。
ある程度、どんなところでバグることが多いかの経験があればまだしも……。
それでもInvalidOperationException とか InvalidCastException だったら目も当てられない。
えーーーー どこーーー???? になること請け合い。
未解決。
関係ないけど。今日、西条に初雪が降りました。明日はもっと冷えるそうです。正直……
2008/11/11(Tue)yieldが使いたい
RPGのシナリオスクリプトを、
C#のあるソースファイルのメソッドとして定義し、
C#コンパイラに食わせることを考える。
スクリプトなのだから、スクリプタさんが書く。
文法こそC#だがスクリプトっぽい感覚で書けるように留意する。
RPGなのだから「メッセージを表示してボタン待ち」のような高レベルAPIを用意したい。
スクリプトの実行はそこでブロッキングして、一見処理が止まってるように見せたい。
しかし実際にスレッドまで止めてしまうとゲームが止まってしまう。どうする?
2008/11/09(Sun)QoFの仕様を考えながら
2008/11/02(Sun)ICPC 2008 アジア地区予選 in 会津
なんか、いまごろICPC日記とか……。
書こうにも書く時間もなかったといえばなかった(あったといえばあった)のだけども、大学祭も今日で2日目が終わってしまって、ブログどうしよう状態に陥ったので書いてみることにした。