2012/01/16(月)SofTail

  • 型定義だけのDllをコアモジュール内部に戻した
型定義を外に出したのは、VSがSetting.csで使う型は自プロジェクトの定義からは参照出来ないという制限を回避するのが目的だったので、GUIとコアモジュールに分けた時点で型定義なモジュールを外に出す意味はなくなってたのね。

さて、プラグインを書くか、引き続きSofTailのApplicationSettingsクラスの足りない部分を書くか。スレッドをスレッドらしく書きなおすっていう宿題も残ってるか...。

お仕事でプログラムを組んでた時、複雑なシステムを相手にそこそこ戦えたのは先人達が整理されたコードで書いていてくれていたお陰だった、といろんなコードを見るにつけ思うので、なるべくそういうコードを書けるようになりたい。
あんなデカくて複雑なものをパフォーマンスの犠牲もコメントもなしで、でも見たらすぐに意図を汲める、なんていうクオリティには日曜プログラムを何年続けても到達できる気がしないが。

2012/01/14(土)いつかのMartin、という物欲を半ば諦めた

楽器屋さんでD-28を弾いてみた。
指弾きには000だろう、Dは低音が緩くなったりするんでは?という先入観があって触ったことがなかったんだけど、楽器屋さんが「Dもいいですよ」と言う(むしろ全てにおいてDが上、という表現だった)ので弾かせてもらった。

確かに、低音が緩くなるような事はない。ストロークした時にはボディがデカイだけのことはあってガンガン響く。なんていうかこう、000だと狭くて、木箱にぶつかるような感じ?Dだと柔らかく広がっていく感じ?(※イメージです)。低音が"コーン"と出て欲しいなら000だけど、Dのどーんと出る感じも、これはこれでいい。
マーチンのガツンと来る中域も出てる。

続きを読む

2012/01/13(金)続・SofTailNet

ただの作業メモ:
昨日
  • 存在しないファイルを読む設定にした場合に、[STOP]を押しても実は止まってない場合がある問題を修正
  • 型定義だけ入ったモジュールをDLLに追い出した
今日
  • メインの機能とGUIのガワをDLLに分割した
    • プロジェクトに分けてDLLを作成して、最終生成物は ILMerge で結合
    • フリーソフト程度のものは exe 単体で済んだほうがいいじゃん?
    • app.config に保存するデータ型を自前で定義する場合に、自プロジェクトで定義した型は使えない、というVSの仕様上のバグとしか思えない点も解決できてよかった
      • この一点だけでも ILMerge は有用なのでは?
ILMerge.exe の呼び出しは、ビルドイベントに入れておく。マクロが必要十分なだけ揃ってるのでこんな風に書けた。※一行です

"C:\Program Files (x86)\Microsoft\ILMerge\ILMerge.exe" $(TargetPath) $(SolutionDir)SofTailCore\$(OutDir)SofTailCore.dll $(SolutionDir)\SofTailTypes\$(OutDir)SofTailNet.Types.dll /out:SofTail.exe /log:ILMerge.log

いろんなツールでマクロが多すぎて使いづらかったり、逆に少なくて要求を満たさなかったりする事が多いので、少ないマクロで必要十分揃ってるっていうのは素晴らしいと思った。クリーンの時の動作も定義できるといいな。


機能の分割にこんなに時間を食うとは思わなかったけど、ついでにコードの整理もできたのでヨシとする。

追記:
  • TODO: 文字コードの指定でユーザー指定のものをリストに追加する際には、重複チェックを行う
  • WISH: ユーザー指定の文字コードは履歴を残す
    • セーブのタイミングを変えないと、最後に指定した物以外は残らない
    • めんどいから設定用のオブジェクトから内部オブジェクトに変数をコピーするのやめようか

2012/01/11(水)SofTail 0.9.7.4

公開はしてないけど作業メモ。
  • SofTalk.exe を起動できなかったので対処
    • /W オプション無しだとうまくいかないっぽい
    • "コマンドをファイル名として~" あたりの設定の初期値が変わったのかな?
  • 派生アプリを作りたいので使いまわせるようにコードを色々整理
  • 文字コードを色々指定できるように
SofTalk の対応を治してみたものの、
  • SofTalk.exe を呼び出すと大量にログが流れた時に渋滞を起こす
  • SofTalkw.exe を呼び出すと重なって再生されるので渋滞どころか無法地帯と化す
    • 無法地帯を治めるには...SofTailを親プロセスにして、プロセスツリーごと殺せた方がいいのかも
  • 俺が何か間違えた可能性があるけど、複数行を渡した時の動作がLIFOっぽい
    • FIFOじゃないの...
対処はめんどくさいのであんまり対応したくない感じ。
いつからか、/X: オプションが追加されてバッチ起動をしやすくなっていたのはありがたい。

構想してる派生アプリは棒読みちゃんのプラグイン。
単体アプリとして作るのは用途の割には大仰な気がしてたので、プラグインにした方がいい。出だしが SofTalk との連携で始まったので単体として作ったけど、棒読みちゃんならサードパーティプラグインを作れる。

2012/01/04(水)SofTail 0.9.7.3

SofTail 0.9.7.3 を公開しました。
SofTail

「ファイルを排他ロックで開くアプリケーションと連携できる事」が目的だったはずのリリースです。FreeBSDのtailは開きっぱなしで読んでるようだったのでそのまま真似していたんですが、それではよろしくないケースがあるってことですね。

今回の目玉は落書きをつけた事です。
Win32API + rc ファイルで書いていた時代と違って、.Net では exe 一個で済ませるにはちょこっと工夫が要るみたいですね。


設定の保存については、VisualStudioにお任せするのがいいのか自分でゴリゴリ書いたほうが楽なのか、VisualStudio任せだと制限があって悩む所。