2012/11/20(火)dns/bind99

dns/bind99 を使ってみる。
きっかけは、samba4 を試験環境に入れてみた際に、DLZ が有効で kerberos 関連のライブラリとリンクした bind が必要だったので。

REPLACE_BASE="YES" で入れれば楽なんだけど、mergemaster でグダグダ言われそうなので /usr/local に入ってもらう。
src.conf で WITHOUT_BIND="YES" を設定してから world を入れて、mergemaster まで済ませてからのほうが混乱も少ないと思う。nslookup とか、リゾルバ関連のプログラムやライブラリも bind が提供してるので、2つ入ってると色々面倒が起きそう。

/usr/local/etc/rc.d 以下には起動スクリプトがない。
/etc/rc.d/named から起動しようとすると色々と文句を言われる。

rc.conf に下記を追加。
named_program="/usr/local/sbin/named"
rc スクリプトはこのパラメータから /usr/local を切り出して、このパスを基準に後の事は調整してくれるようだ。


いつからかはわからないけど、jail 環境でも chroot できるようになってた。security.jail.mount_devfs_allowed とかがその調整のために出て来たのかな。
prefix がバイナリに埋め込まれてるようなので、$chrootdir/usr/local 以下におく必要があるファイルがあるけど、mtree ではそこまで考慮してくれてないっぽい。

2012/11/19(月)FreeBSD 9.1 に jail.conf(5) が現れた

jail.conf(5) が追加された。
jail の起動は、rc.d/jail を使うかコマンドラインオプションを指定するかだったけれど、jail.conf に設定をまとめることで、コマンドラインでは jail name だけ指定すれば保存されたオプションで jail が起動してくれる。

vnet jail の設定も保存しておけるので操作がかなり簡単になったし、rc.conf に記述するよりもスマートだ。

でも、exec.prestart と exec.start の間に任意の操作を行うインタフェースはないようだ。
zfs jail $jailname $zfs をしたければ、
  • jail -c $jailname persist
  • zfs jail $jailname $zfs
  • jexec $jailname sh /etc/rc
とするしかない。

zfs jail が $jid じゃなくて $jailname を理解してくれるとうれしい。

追記: 9.2では zfs jail が $jailname を理解するようになった。

2012/02/09(木)棒読みちゃんプラグイン版 SofTail

SofTailを棒読みちゃんのプラグインにしました。
Plugin_SofTail

使いながら、「こいつには画面の僅かな面積すら占有する資格は無いよな」「棒読みちゃんが最初からこの機能を持ってればいいのに」と思っていたので、まさに理想のSofTailができました。

棒読みちゃんのプラグインの作り方を把握するのにダラダラと時間がかかりました。
PBase ってインタフェースに明示されてないのかよ、とか。

ファイルを追いかける実装はSofTailと一緒です。一緒というか、コア部分はDllにしてあって、プラグインのインタフェースを作って ILMerge でガチャコンとくっつけてるだけ。
SofTailの方もダイアログフォームを作ってガチャコンとくっつけてるだけ。

2012/02/09(木)Plugin_SofTail

SofTail の棒読みちゃん用プラグインバージョンです。

SofTailNet-1.0.1.2.zip(2015/06/06)
SofTailNet-1.0.1.3.zip(2016/04/20)
MD5 (SofTailNet-1.0.1.2.zip) = 2f9e7f77ac0654dbe50cea8bc2be6367
MD5 (SofTailNet-1.0.1.3.zip) = 547fb48110a151d961ce0d8c76103b4b

Ver.1.0.1.1から、単体プログラムとプラグインを同梱するようにしました。

概要

棒読みちゃん用のファイル読み上げプラグインです。
棒読みちゃんでこのプラグインを有効にすると、指定したファイルを見はって、追記された内容を読み上げます。

インストール方法

ダウンロードした zip ファイルを展開するとフォルダが出来ます。その中に
ある Plugin_SofTail.dll を棒読みちゃんと同じディレクトリに置いてくだ
さい。
棒読みちゃんを再起動すると、プラグインが追加されます。

使い方

[その他]タブの中の、[プラグイン]タブで 有効/無効 や設定を変更できます。
Bouyomi-with-1.0.1.2.png


"SofTail" を選択して色が付いている状態で、右下のレンチのアイコンをクリッ
クすると設定画面が表示されます。
設定画面で、読み上げる対象のファイルとそのファイルの文字コードを指定し
てください。
Plugin_SofTail_config.png

ファイル名に含まれる日時を動的に指定することができます。
指定する場合は、書式指定文字列を "<>" で括ってください。複数指定することも可能です。
例えば、<yyyyMMdd>.log と指定することで、2/21のうちは 20150221.log を読み、日付が変わった時点から 20150222.log を読み上げる事ができます。

大まかに、以下のように記述できます。Mの大文字小文字に気を付けてください。
yyyy/MM/dd HH:mm.ss
2015/02/21 22:37.54
例)
C:\Users\teak\OmorohGame\<yyyy>年-<MM>月<dd>日.txt
山かっこの中に、書式指定文字列以外の文字が入っている場合は正しく解釈できません。再生が始まらない場合は、記述が正しいかもう一度確認してみてください。

書式指定文字列のさらに詳しい内容はマイクロソフトの技術情報を参考にしてください。このページで説明している書式指定文字列が使用できます。
https://msdn.microsoft.com/ja-jp/library/8kb3ddd4(v=vs.110).aspx


プラグインが有効になっていると、[合成音声]タブに "ねこのしっぽ" のよう
なものが描かれたボタンが表示されます。このボタンをクリックすることで再
生と停止を切り替えます。
再生中は緑色、停止中は黒い背景になります。
BouyomiChan-MainPanel.PNG


ファイルの文字コードには、.Net Framework の Encoding クラスが扱える文
字コードを指定する事ができます。
※言語によっては棒読みちゃんが読み上げられない場合があります

2012/01/16(月)SofTail

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

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

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