<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Dragon Networks</title>
	<atom:link href="http://www.dragon-networks.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.dragon-networks.com/blog</link>
	<description>DNA R&#38;D  BLOG</description>
	<pubDate>Sat, 10 Oct 2009 06:40:40 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>ja</language>
			<item>
		<title>メールサーバの処理をわかりやすく説明してみろとの指摘があったので&#8230;.</title>
		<link>http://www.dragon-networks.com/blog/?p=160</link>
		<comments>http://www.dragon-networks.com/blog/?p=160#comments</comments>
		<pubDate>Sat, 10 Oct 2009 06:40:40 +0000</pubDate>
		<dc:creator>moriyama</dc:creator>
		
		<category><![CDATA[つれづれ]]></category>

		<category><![CDATA[ネットワーク]]></category>

		<category><![CDATA[開発者のひとりごと]]></category>

		<guid isPermaLink="false">http://www.dragon-networks.com/blog/?p=160</guid>
		<description><![CDATA[メールの仕組みって、RFCに規定されたものを読めば理解出来る..と言いつつ、実は
読んでもいないし、読んでも何を言われているのかさっぱり??..ってことですかね
その前に、ソケット通信とはなんぞや..とか、TCPとUDPの違いは？..などと、事前
知識があってあたりまえってことで、それも説明し出すと聞く方が長くて耐えられ
ない..ってことなんでしょうか？
まぁ、なんか書くだけ書いてみます。当たり前の話で恥ずかしいんですけどね。
メールが、送信側サーバから受信側サーバに送られ、メールボックスにおさまるまで
の話に限定してみます。
まず、受信側のサーバですが、常時25番ポートという入り口を開けて、いつでもメー
ルが受け付けられるように動いています。
送信側サーバは、その入り口に向けて、メールを送ればいいのですが、世界中のどの
メールサーバに送ったらいいのか？というのを、何で判断するか&#8230;.これを勘違いし
ている人が多いんですね
　「そりゃ、To:とかCc:とかに書いた宛先を見て送るんだろうよ..」
　「それがどこに書いてあるかって？　ヘッダに書いてあるじゃんか！」
..って勘違いですね。
ヘッダにBccなんて書いていないのに、なぜ届くか？..と言えば、それが間違いである
のは理解いただけると思います。
実際には、エンベロープと呼ばれる「受信者のメールボックスには入らないけど、
サーバ上では付加されている情報」を見て判断しています。
メール1本のToやCcなどの中に、複数の会社の宛先を入れると、送信側のメールサーバ
は、複数の受信側メールサーバにメールを送ることになりますが、話を簡単にするため
に、そのうちの、１社に送られたものを対象に話を進めます。
受信側メールサーバに送られるメールには、同じ会社のAさん、Bさん、CさんにCcがつ
いていると思ってください。それでも、メールはまだ、その会社内の宛先を複数含む
１つのメールとして送られてきます。
このメールに、他社の社員のDさんにもCcがついていた場合であっても、受信側メール
サーバに到達した時点での、このメールの「エンベロープ」には、もうDさんの情報は
書かれていない状態になっています。送信側で、送り先の受信側サーバに配送を要求
することのないエンベロープ宛先を取り除くからです。
さて、受信側サーバに到着し始めたメール（メールは一瞬で届くわけではなく、メール
のサイズによっては結構な時間をかけて届きます）は、まずエンベロープやヘッダなど
から順に受け付けられ、メール本文や添付ファイルも全部受け取り、それを「メモリ上
ではなくハードディスクなどの不揮発記憶装置に書き込み終えてから」受け取り成功の
アンサを返すことになっています。
これ、厳密に言うと、ほとんどのソフトはそこまで本当に厳密には動いていなくて、
ライトバックキャッシュや、HDDに組み込まれているキャッシュに入りきり、OSに対す
る書き込み系システムコールが成功したら、成功としているんですけどね。
ハードウェアのキャッシュをライトスルーにして、かつ、OSでsyncモードでマウント
したファイルシステムに受信内容を書くのが、もっとも厳密なわけですけど、それを
やるとディスクの物理速度に足を引っ張られて、大幅にパフォーマンスダウンしてし
まうので、そこまではしないのが普通です。
良いRAIDはキャッシュをSRAMバッテリバックアップで持たせ、さらにサーバもUPSで守り、
停電ぐらいでは「書いたはずだが停電したら1ファイル無くなってる」なんてことを防ぐ
ようにするからです。
あ&#8230;.話が脱線しました。
一般には、受信し終えたときにディスクに書き込まれるファイルは、メールボックスに
直接入るのではなく、一時ファイルとして記録されます。
大きなメールでは、受信完了までに長い時間がかかるため、別のサーバから、別のメー
ルが次々届くことになります。そういうことに対応できるように、メールサーバは、
マルチスレッドやマルチプロセスで並列処理を行い、1つのメールの受信中にも、別の
スレッドが25番ポートへの着信を待ち受け、次々並列処理で受信が行えるようになって
います。
とはいえ、サーバも無限大の能力があるわけではないですから、並列で受信できる数の
上限は定められているか、設定による可変の上限値が与えられています。
これを超えた並列度でメールが送りつけられてくると、「どのスレッドも25番ポートで
待ち受けていない」状態が生じます。すると、その状態で新たに接続しに来た別のサー
バにとっては、接続を受け付けてもらえない状態が生じるようになります。
&#8230;.あぁ&#8230;.どんどん脱線する&#8230;.
そういうのを、ポートによる死活監視を行うタイプのクラスタリングソフトなんかで、
フェイルオーバー型クラスタにしちゃってると、生きているのにフェイルオーバーが
起こる..ってことになるんですが&#8230;.濃い話なので先に進みます。
さてさて、とりあえずの受信が済み、一時ファイルになったメールは、宛先となる人
全てのメールボックスに格納されなければなりません。
メールボックスへの配送作業は、それ専用の別スレッドで行うソフトが多く、一時ファ
イルを順番に処理できるように工夫されています。
メールボックスに配送する時点で、エンベロープ情報はもう不要になり、取り除かれて
しまいます。
メールボックスは、mbox形式と、maildir形式に大きく二分されますが、1ファイルに
どんどんメールを追記していくmbox形式は、いくらメール数が増えてもファイル数が
増えず、ディレクトリエントリの取得時間が増加することがない反面、壊れると全部の
内容を失う危険もあるわけですが、maildirでは、よっぽどため込まなければ、処理
速度云々の問題までは出ないので、こっちの方が良いかなぁ..と思われます。
で、ここでCGPの「おぉ！」という部分の一つがあるんです。
Ccとか、グループ配信とかで、1つの同じ内容のメールが、多くの人に配送される場合、
CGPでは、maildir形式において、1個しか実体のファイルを配送しないんですね。
他のメールボックスには、あたかも同じファイルがあるかのように見えるような、
「ハードリンク」を貼るだけなんです。で、読み出されてサーバ上から1人が削除を
するたびにハードリンクが減っていき、最後の1人が消した時点で、メールの本体が
実際に削除される&#8230;.と。
これにより、グループなどの一斉配信系を多用する場合に、ディスク消費量をうんと
少なくできるし、実際に書き込まないのでディスクの物理的動作を軽減することで、
より高速な配送が出来るようになっているんです。
&#8230;.あぁ&#8230;.ホントはまだまだ書きたいのに&#8230;.
これ以上書いても読み切れないでしょうからこの辺で終わりにします。
既に、ここまで読む人は少ないのかなぁ（笑）
]]></description>
			<content:encoded><![CDATA[<p>メールの仕組みって、RFCに規定されたものを読めば理解出来る..と言いつつ、実は<br />
読んでもいないし、読んでも何を言われているのかさっぱり??..ってことですかね</p>
<p>その前に、ソケット通信とはなんぞや..とか、TCPとUDPの違いは？..などと、事前<br />
知識があってあたりまえってことで、それも説明し出すと聞く方が長くて耐えられ<br />
ない..ってことなんでしょうか？</p>
<p>まぁ、なんか書くだけ書いてみます。当たり前の話で恥ずかしいんですけどね。<br />
メールが、送信側サーバから受信側サーバに送られ、メールボックスにおさまるまで<br />
の話に限定してみます。</p>
<p>まず、受信側のサーバですが、常時25番ポートという入り口を開けて、いつでもメー<br />
ルが受け付けられるように動いています。</p>
<p>送信側サーバは、その入り口に向けて、メールを送ればいいのですが、世界中のどの<br />
メールサーバに送ったらいいのか？というのを、何で判断するか&#8230;.これを勘違いし<br />
ている人が多いんですね</p>
<p>　「そりゃ、To:とかCc:とかに書いた宛先を見て送るんだろうよ..」<br />
　「それがどこに書いてあるかって？　ヘッダに書いてあるじゃんか！」</p>
<p>..って勘違いですね。<br />
ヘッダにBccなんて書いていないのに、なぜ届くか？..と言えば、それが間違いである<br />
のは理解いただけると思います。</p>
<p>実際には、エンベロープと呼ばれる「受信者のメールボックスには入らないけど、<br />
サーバ上では付加されている情報」を見て判断しています。</p>
<p>メール1本のToやCcなどの中に、複数の会社の宛先を入れると、送信側のメールサーバ<br />
は、複数の受信側メールサーバにメールを送ることになりますが、話を簡単にするため<br />
に、そのうちの、１社に送られたものを対象に話を進めます。</p>
<p>受信側メールサーバに送られるメールには、同じ会社のAさん、Bさん、CさんにCcがつ<br />
いていると思ってください。それでも、メールはまだ、その会社内の宛先を複数含む<br />
１つのメールとして送られてきます。</p>
<p>このメールに、他社の社員のDさんにもCcがついていた場合であっても、受信側メール<br />
サーバに到達した時点での、このメールの「エンベロープ」には、もうDさんの情報は<br />
書かれていない状態になっています。送信側で、送り先の受信側サーバに配送を要求<br />
することのないエンベロープ宛先を取り除くからです。</p>
<p>さて、受信側サーバに到着し始めたメール（メールは一瞬で届くわけではなく、メール<br />
のサイズによっては結構な時間をかけて届きます）は、まずエンベロープやヘッダなど<br />
から順に受け付けられ、メール本文や添付ファイルも全部受け取り、それを「メモリ上<br />
ではなくハードディスクなどの不揮発記憶装置に書き込み終えてから」受け取り成功の<br />
アンサを返すことになっています。</p>
<p>これ、厳密に言うと、ほとんどのソフトはそこまで本当に厳密には動いていなくて、<br />
ライトバックキャッシュや、HDDに組み込まれているキャッシュに入りきり、OSに対す<br />
る書き込み系システムコールが成功したら、成功としているんですけどね。</p>
<p>ハードウェアのキャッシュをライトスルーにして、かつ、OSでsyncモードでマウント<br />
したファイルシステムに受信内容を書くのが、もっとも厳密なわけですけど、それを<br />
やるとディスクの物理速度に足を引っ張られて、大幅にパフォーマンスダウンしてし<br />
まうので、そこまではしないのが普通です。</p>
<p>良いRAIDはキャッシュをSRAMバッテリバックアップで持たせ、さらにサーバもUPSで守り、<br />
停電ぐらいでは「書いたはずだが停電したら1ファイル無くなってる」なんてことを防ぐ<br />
ようにするからです。</p>
<p>あ&#8230;.話が脱線しました。</p>
<p>一般には、受信し終えたときにディスクに書き込まれるファイルは、メールボックスに<br />
直接入るのではなく、一時ファイルとして記録されます。</p>
<p>大きなメールでは、受信完了までに長い時間がかかるため、別のサーバから、別のメー<br />
ルが次々届くことになります。そういうことに対応できるように、メールサーバは、<br />
マルチスレッドやマルチプロセスで並列処理を行い、1つのメールの受信中にも、別の<br />
スレッドが25番ポートへの着信を待ち受け、次々並列処理で受信が行えるようになって<br />
います。</p>
<p>とはいえ、サーバも無限大の能力があるわけではないですから、並列で受信できる数の<br />
上限は定められているか、設定による可変の上限値が与えられています。</p>
<p>これを超えた並列度でメールが送りつけられてくると、「どのスレッドも25番ポートで<br />
待ち受けていない」状態が生じます。すると、その状態で新たに接続しに来た別のサー<br />
バにとっては、接続を受け付けてもらえない状態が生じるようになります。</p>
<p>&#8230;.あぁ&#8230;.どんどん脱線する&#8230;.</p>
<p>そういうのを、ポートによる死活監視を行うタイプのクラスタリングソフトなんかで、<br />
フェイルオーバー型クラスタにしちゃってると、生きているのにフェイルオーバーが<br />
起こる..ってことになるんですが&#8230;.濃い話なので先に進みます。</p>
<p>さてさて、とりあえずの受信が済み、一時ファイルになったメールは、宛先となる人<br />
全てのメールボックスに格納されなければなりません。</p>
<p>メールボックスへの配送作業は、それ専用の別スレッドで行うソフトが多く、一時ファ<br />
イルを順番に処理できるように工夫されています。</p>
<p>メールボックスに配送する時点で、エンベロープ情報はもう不要になり、取り除かれて<br />
しまいます。</p>
<p>メールボックスは、mbox形式と、maildir形式に大きく二分されますが、1ファイルに<br />
どんどんメールを追記していくmbox形式は、いくらメール数が増えてもファイル数が<br />
増えず、ディレクトリエントリの取得時間が増加することがない反面、壊れると全部の<br />
内容を失う危険もあるわけですが、maildirでは、よっぽどため込まなければ、処理<br />
速度云々の問題までは出ないので、こっちの方が良いかなぁ..と思われます。</p>
<p>で、ここでCGPの「おぉ！」という部分の一つがあるんです。</p>
<p>Ccとか、グループ配信とかで、1つの同じ内容のメールが、多くの人に配送される場合、<br />
CGPでは、maildir形式において、1個しか実体のファイルを配送しないんですね。</p>
<p>他のメールボックスには、あたかも同じファイルがあるかのように見えるような、<br />
「ハードリンク」を貼るだけなんです。で、読み出されてサーバ上から1人が削除を<br />
するたびにハードリンクが減っていき、最後の1人が消した時点で、メールの本体が<br />
実際に削除される&#8230;.と。</p>
<p>これにより、グループなどの一斉配信系を多用する場合に、ディスク消費量をうんと<br />
少なくできるし、実際に書き込まないのでディスクの物理的動作を軽減することで、<br />
より高速な配送が出来るようになっているんです。</p>
<p>&#8230;.あぁ&#8230;.ホントはまだまだ書きたいのに&#8230;.</p>
<p>これ以上書いても読み切れないでしょうからこの辺で終わりにします。</p>
<p>既に、ここまで読む人は少ないのかなぁ（笑）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dragon-networks.com/blog/?feed=rss2&amp;p=160</wfw:commentRss>
		</item>
		<item>
		<title>バックアップ系新商品裏話</title>
		<link>http://www.dragon-networks.com/blog/?p=155</link>
		<comments>http://www.dragon-networks.com/blog/?p=155#comments</comments>
		<pubDate>Sun, 02 Aug 2009 11:53:15 +0000</pubDate>
		<dc:creator>moriyama</dc:creator>
		
		<category><![CDATA[未分類]]></category>

		<category><![CDATA[開発者のひとりごと]]></category>

		<guid isPermaLink="false">http://www.dragon-networks.com/blog/?p=155</guid>
		<description><![CDATA[バックアップ系の新商品がリリースできそうな形になってきたので、裏話を書きます。
もともとは、うちの会社のファイルサーバの体制不備が開発の発端です。
基本的に、担当者のPC内部に重要な情報が記録されるとき、ファイルサーバにも置くように徹底することで、PCがコケてもデータは残るというだけのファイルサーバだったのですが、これがイケてません。
ファイルサーバ自身のバックアップがないのは、貧乏な我が社でもあんまりの体制です。
退職者が出て、PCを初期化したりすると、データが2箇所に保存されていなくなってしまうし、そもそもどこにあるのかがわかりにくい。
で、退職者の扱ったデータの所在がわかりにくいのを解決するために生まれたのが、アイデクサーだったわけです。
ということで、今度の新商品は、ファイルサーバの丸ごとバックアップを以下に容易にするかという観点で作られました。ついでに、共有フォルダであれば、一般PCでもバックアップできちゃうようにと..
要は、我が社自身が便利に使いたいのが発端な訳ですね（汗）
さて、我が社では、開発・サポートを主業務とする関係上、グラフィック・音声・映像データなどの膨大な容量をファイルサーバに置くわけではありません。
このご時世のSATA-HDDは、1発で2TBもあるわけですから、なんとなれば、そこに全部収まるわけで、特段の開発をせずとも、バックアップそのものは出来ます。
しかし今後、ある程度の容量拡張が可能で、バックアップされた中身を容易に検索できるのであれば、それに超したことはありません。
そこで今回は、以下のようなものを開発したのです。
・Windowsファイル共有でアクセス可能な場所なら、どこでも、何台でも連続的にバックアップできる。
・バックアップ元PCにエージェント等を入れないでもバックアップできる
・Windowsファイル共有が可能であれば、バックアップ元のOSは問わない
・Webユーザインターフェースで、バックアップ元の登録やバックアップ時刻設定が簡単にできる
・あとからディスクを追加すれば、LVMでどんどん容量追加してバックアップ先の内蔵ディスクを増やせる
　　※今は1発で最大2TBだけど、将来もっと大きなディスクが出てくれば、もっと大きなバックアップが出来る
・LVMを使ったディスク拡張を、ボタン一発で自動実行するインターフェース搭載
・アイデクサーのエンジンを流用し、バックアップ内の検索をかんたんにできる
・バックアップが行われるたびに、自動的に検索インデックスを再作成する
・検索は、アイデクサー同様、ファイル名・フォルダ名・全文検索対応
・検索時に、オフィス系を含むサムネイル表示・サムネイル拡大が出来る
・アイデクサー同様にEXIF検索やPDF検索も搭載
・基本的にモニタ／キーボード無しで運用できるだけのWebインターフェースの充実
・モニタ無し時の利便性の一環で、Beep音で状況に即したメロディーを流す
・バックアップの終了や使用容量の通知をメールで出す
・もちろん、エラー系の通知も日本語で詳しいメールが出る
・通知は、エラー・警告・一般通知のレベルに分けられ、それぞれ通知先アドレスを変えられる
&#8230;.どうです。てんこ盛りでしょ（笑）
バックアップ元登録時に、そのバックアップ元をマウントする際に使うユーザ名／パスワードを個別登録するんですけど、登録実行ボタンを押すと、実際にマウント可能かどうかを調査してから登録を受け付ける仕組みになっています。
これを作っているときに思ったのですけど、Windowsファイル共有を対象にするなら、nmblookupでアクセス可能な全マシンをリストして、片っ端からアクセスし、ユーザ名をAdministrator固定で、パスワードの総当たりハックを仕掛け、当たったら勝手にバックアップ元に登録しちゃう仕組みにしたら、そこらのPCの共有部分をみーんな勝手にバックアップできるかも..（汗）..とも思ったのですが、犯罪っぽい臭いがするのでやめました(^^;;
本当はMacのAFPを同様に扱えると、さらに良いなぁ..って思いもあるんですけど、まだ、LinuxからAFPで共有ボリュームをマウントしたりクライアントアクセスしたりする手法の確実性が疑問です。
まぁ、mount -t cifs並に便利なmount -t afp の登場とか、smbclientのように使えるafpclientの出現とかは期待できそうにないけど、暇を見て以下を試してみるのも良いかな..とも思っています。
http://alexthepuffin.googlepages.com/home
http://sourceforge.net/projects/afpfs-ng/
FedoraCore8用みたいですが、おそらく、実際に使うときは、CIFSでバックアップした内容との混在を避けなければならないのは間違いなさそうだし、これを今度はafpdでnetatalkから公開したときに、Mac側でまともに見えるものになるのか..と言う点が最低限クリアされなければいけないと考えています。
混在を避けなければならない理由を細かく書けばきりがないのですけど、Macが、UTF-8の扱いを他と違えていることがもっとも気に入らない点ですね。
MacのUTF-8って、内部的には全角ひらがなの「が」を、「か」＋「゛を示すコード」で示し、DVDなんかみたいな外部のメディアの場合は「が」のままで許すとか、よくわからない仕組みになっているんですよ。
他の仕事で、Macが作ったファイルでは相当苦労させられているので、やるときは経験を踏まえてしっかり作らなきゃ行けないと思うし、Mac対応は仮に出来たとしてもずっと先かなぁ(^^;;
]]></description>
			<content:encoded><![CDATA[<p>バックアップ系の新商品がリリースできそうな形になってきたので、裏話を書きます。</p>
<p>もともとは、うちの会社のファイルサーバの体制不備が開発の発端です。<br />
基本的に、担当者のPC内部に重要な情報が記録されるとき、ファイルサーバにも置くように徹底することで、PCがコケてもデータは残るというだけのファイルサーバだったのですが、これがイケてません。<br />
ファイルサーバ自身のバックアップがないのは、貧乏な我が社でもあんまりの体制です。</p>
<p>退職者が出て、PCを初期化したりすると、データが2箇所に保存されていなくなってしまうし、そもそもどこにあるのかがわかりにくい。<br />
で、退職者の扱ったデータの所在がわかりにくいのを解決するために生まれたのが、アイデクサーだったわけです。</p>
<p>ということで、今度の新商品は、ファイルサーバの丸ごとバックアップを以下に容易にするかという観点で作られました。ついでに、共有フォルダであれば、一般PCでもバックアップできちゃうようにと..<br />
要は、我が社自身が便利に使いたいのが発端な訳ですね（汗）</p>
<p>さて、我が社では、開発・サポートを主業務とする関係上、グラフィック・音声・映像データなどの膨大な容量をファイルサーバに置くわけではありません。<br />
このご時世のSATA-HDDは、1発で2TBもあるわけですから、なんとなれば、そこに全部収まるわけで、特段の開発をせずとも、バックアップそのものは出来ます。</p>
<p>しかし今後、ある程度の容量拡張が可能で、バックアップされた中身を容易に検索できるのであれば、それに超したことはありません。</p>
<p>そこで今回は、以下のようなものを開発したのです。</p>
<p>・Windowsファイル共有でアクセス可能な場所なら、どこでも、何台でも連続的にバックアップできる。<br />
・バックアップ元PCにエージェント等を入れないでもバックアップできる<br />
・Windowsファイル共有が可能であれば、バックアップ元のOSは問わない<br />
・Webユーザインターフェースで、バックアップ元の登録やバックアップ時刻設定が簡単にできる<br />
・あとからディスクを追加すれば、LVMでどんどん容量追加してバックアップ先の内蔵ディスクを増やせる<br />
　　※今は1発で最大2TBだけど、将来もっと大きなディスクが出てくれば、もっと大きなバックアップが出来る<br />
・LVMを使ったディスク拡張を、ボタン一発で自動実行するインターフェース搭載<br />
・アイデクサーのエンジンを流用し、バックアップ内の検索をかんたんにできる<br />
・バックアップが行われるたびに、自動的に検索インデックスを再作成する<br />
・検索は、アイデクサー同様、ファイル名・フォルダ名・全文検索対応<br />
・検索時に、オフィス系を含むサムネイル表示・サムネイル拡大が出来る<br />
・アイデクサー同様にEXIF検索やPDF検索も搭載<br />
・基本的にモニタ／キーボード無しで運用できるだけのWebインターフェースの充実<br />
・モニタ無し時の利便性の一環で、Beep音で状況に即したメロディーを流す<br />
・バックアップの終了や使用容量の通知をメールで出す<br />
・もちろん、エラー系の通知も日本語で詳しいメールが出る<br />
・通知は、エラー・警告・一般通知のレベルに分けられ、それぞれ通知先アドレスを変えられる</p>
<p>&#8230;.どうです。てんこ盛りでしょ（笑）</p>
<p>バックアップ元登録時に、そのバックアップ元をマウントする際に使うユーザ名／パスワードを個別登録するんですけど、登録実行ボタンを押すと、実際にマウント可能かどうかを調査してから登録を受け付ける仕組みになっています。</p>
<p>これを作っているときに思ったのですけど、Windowsファイル共有を対象にするなら、nmblookupでアクセス可能な全マシンをリストして、片っ端からアクセスし、ユーザ名をAdministrator固定で、パスワードの総当たりハックを仕掛け、当たったら勝手にバックアップ元に登録しちゃう仕組みにしたら、そこらのPCの共有部分をみーんな勝手にバックアップできるかも..（汗）..とも思ったのですが、犯罪っぽい臭いがするのでやめました(^^;;</p>
<p>本当はMacのAFPを同様に扱えると、さらに良いなぁ..って思いもあるんですけど、まだ、LinuxからAFPで共有ボリュームをマウントしたりクライアントアクセスしたりする手法の確実性が疑問です。</p>
<p>まぁ、mount -t cifs並に便利なmount -t afp の登場とか、smbclientのように使えるafpclientの出現とかは期待できそうにないけど、暇を見て以下を試してみるのも良いかな..とも思っています。</p>
<p><a href="http://alexthepuffin.googlepages.com/home">http://alexthepuffin.googlepages.com/home</a><br />
<a href="http://sourceforge.net/projects/afpfs-ng/">http://sourceforge.net/projects/afpfs-ng/</a></p>
<p>FedoraCore8用みたいですが、おそらく、実際に使うときは、CIFSでバックアップした内容との混在を避けなければならないのは間違いなさそうだし、これを今度はafpdでnetatalkから公開したときに、Mac側でまともに見えるものになるのか..と言う点が最低限クリアされなければいけないと考えています。</p>
<p>混在を避けなければならない理由を細かく書けばきりがないのですけど、Macが、UTF-8の扱いを他と違えていることがもっとも気に入らない点ですね。<br />
MacのUTF-8って、内部的には全角ひらがなの「が」を、「か」＋「゛を示すコード」で示し、DVDなんかみたいな外部のメディアの場合は「が」のままで許すとか、よくわからない仕組みになっているんですよ。</p>
<p>他の仕事で、Macが作ったファイルでは相当苦労させられているので、やるときは経験を踏まえてしっかり作らなきゃ行けないと思うし、Mac対応は仮に出来たとしてもずっと先かなぁ(^^;;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dragon-networks.com/blog/?feed=rss2&amp;p=155</wfw:commentRss>
		</item>
		<item>
		<title>フリーのFlashオーサリングソフト Suzuka</title>
		<link>http://www.dragon-networks.com/blog/?p=149</link>
		<comments>http://www.dragon-networks.com/blog/?p=149#comments</comments>
		<pubDate>Sun, 29 Mar 2009 00:49:58 +0000</pubDate>
		<dc:creator>すなお</dc:creator>
		
		<category><![CDATA[未分類]]></category>

		<category><![CDATA[開発者の備忘録]]></category>

		<guid isPermaLink="false">http://www.dragon-networks.com/blog/?p=149</guid>
		<description><![CDATA[　動きのあるホームページを作ろうと思うと外せない選択肢がFlashであろう。最近はちょっとしたホームページならFlashを使っていないサイトはないほどに使われている。Flashを使ったサイトを作ろうとしたら一番手ごろなのは、フリー素材。これを扱っているサイトを見てみると自分の要求に合ったようなFlashアニメーションが見つかるかもしれない。しかしいざオリジナルなFlashアニメーションを作ろうと思ったらなかなか大変である。先ず作成するソフト。本家本元はMacromedia社のFlash Mxというソフトなのだが、お値段が58,000円と、お手頃価格というにはちょっと高い。フリーで、またはシェアウェアでも安いFlashを作成できるオーサリングソフトはないかと探したらSuzukaというのがあった。特徴としては、タイムラインベースでFlashが作成でき、またAction Scriptが使えるので、マウスクリックやキー入力に対応するWebアプリケーションも作成できるようである。
　このソフトを使って自分のホームページのトップイメージ画像を作ってみた。アニメーション的には単純なのだが、30分ぐらいで簡単に作れてしまった。

　ホームページに設置した実際のFlashアニメーションは、下のバナーをクリックしてご覧頂きたい。
　なかなか良く出来たソフトだが、バージョンが0.8.1.0なのでまだまだ完成の域ではないということなのだろうか。今後のバージョンアップに期待したい。
■Suzukaの窓の杜紹介ページ
http://www.forest.impress.co.jp/lib/pic/video/flash/suzuka.html


]]></description>
			<content:encoded><![CDATA[<p>　動きのあるホームページを作ろうと思うと外せない選択肢がFlashであろう。最近はちょっとしたホームページならFlashを使っていないサイトはないほどに使われている。Flashを使ったサイトを作ろうとしたら一番手ごろなのは、フリー素材。これを扱っているサイトを見てみると自分の要求に合ったようなFlashアニメーションが見つかるかもしれない。しかしいざオリジナルなFlashアニメーションを作ろうと思ったらなかなか大変である。先ず作成するソフト。<strong>本家本元はMacromedia社のFlash Mxというソフトなのだが、お値段が58,000円と、お手頃価格というにはちょっと高い</strong>。フリーで、またはシェアウェアでも安いFlashを作成できるオーサリングソフトはないかと探したら<span style="color: #ff0000;"><span style="font-size: large;"><strong>Suzuka</strong></span></span>というのがあった。特徴としては、<strong>タイムラインベースでFlashが作成</strong>でき、また<strong>Action Scriptが使える</strong>ので、マウスクリックやキー入力に対応するWebアプリケーションも作成できるようである。<br />
　このソフトを使って自分のホームページのトップイメージ画像を作ってみた。アニメーション的には単純なのだが、<strong>30分ぐらいで簡単に作れてしまった</strong>。<br />
<a href="http://sunao-labo.hp.infoseek.co.jp/img/suzuka.jpg" target="_blank"><img src="http://sunao-labo.hp.infoseek.co.jp/img/suzuka_s.jpg" border="0" alt="Flashオーサリングソフト Suzuka" /></a><br />
　ホームページに設置した実際のFlashアニメーションは、下のバナーをクリックしてご覧頂きたい。</p>
<p>　なかなか良く出来たソフトだが、バージョンが0.8.1.0なのでまだまだ完成の域ではないということなのだろうか。今後のバージョンアップに期待したい。</p>
<p>■Suzukaの窓の杜紹介ページ<br />
<a href="http://www.forest.impress.co.jp/lib/pic/video/flash/suzuka.html" target="_blank">http://www.forest.impress.co.jp/lib/pic/video/flash/suzuka.html</a></p>
<p><a href="http://sunao-labo.hp.infoseek.co.jp/" target="_blank"><br />
<img src="http://image.space.rakuten.co.jp/lg01/83/0000169583/14/img0d2f8330zik7zj.png" border="0" alt="ソフトウェア開発の素直研究所です。お仕事のご依頼はこちらからどうぞ！" width="177" height="54" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dragon-networks.com/blog/?feed=rss2&amp;p=149</wfw:commentRss>
		</item>
		<item>
		<title>携帯サイト用のカレンダー作成</title>
		<link>http://www.dragon-networks.com/blog/?p=146</link>
		<comments>http://www.dragon-networks.com/blog/?p=146#comments</comments>
		<pubDate>Tue, 17 Mar 2009 21:41:02 +0000</pubDate>
		<dc:creator>すなお</dc:creator>
		
		<category><![CDATA[開発者の備忘録]]></category>

		<guid isPermaLink="false">http://www.dragon-networks.com/blog/?p=146</guid>
		<description><![CDATA[　携帯ｉモード版のグループウェアを作ろうと考えている。グループウェアに最低限必要なものを挙げるとしたら、予定表と掲示板といったところだろうか。予定表といったら、カレンダー表示は欠かせない。そこで簡単なカレンダーを表示するPerlスクリプトを書いてみた。
　カレンダー表示で必要な関数は、先ず該当年月日は、何曜日かを求める関数である。

# &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
# Function : get_day_of_week()
# Parameter: $year:西暦, $mon:月, $day:日
# Return   : 曜日番号
# Comment  : 指定日の曜日番号を取得する
# &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
sub getDayOfWeek {
　　my $year = shift; # 年
　　my $mon = shift;　　# 月
　　my $day = shift;　　# 日
　　
　　if ($mon == 1 or $mon == 2) {
　　　　$year&#8211;;
　　　　$mon += 12;
　　}
　　return ($year + int($year / 4) - int($year/100) + int($year / 400)
　　　　+ [...]]]></description>
			<content:encoded><![CDATA[<p>　<strong>携帯ｉモード版のグループウェアを作ろうと考えている</strong>。グループウェアに最低限必要なものを挙げるとしたら、<strong>予定表</strong>と<strong>掲示板</strong>といったところだろうか。予定表といったら、<span style="font-size:large;"><strong>カレンダー表示</strong></span>は欠かせない。そこで簡単なカレンダーを表示するPerlスクリプトを書いてみた。<br />
　<span style="color:#ff0000"><strong>カレンダー表示で必要な関数は、先ず該当年月日は、何曜日かを求める関数である。</strong></span><br />
<hr />
<span style="color:#990000;"># &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span><br />
<span style="color:#990000;"># Function : get_day_of_week()</span><br />
<span style="color:#990000;"># Parameter: $year:西暦, $mon:月, $day:日</span><br />
<span style="color:#990000;"># Return   : 曜日番号</span><br />
<span style="color:#990000;"># Comment  : 指定日の曜日番号を取得する</span><br />
<span style="color:#990000;"># &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span><br />
sub getDayOfWeek {<br />
　　my $year = shift; <span style="color:#990000;"># 年</span><br />
　　my $mon = shift;　　<span style="color:#990000;"># 月</span><br />
　　my $day = shift;　　<span style="color:#990000;"># 日</span><br />
　　<br />
　　<span style="color:#000099;">if</span> ($mon == <span style="color:#009900;">1</span> <span style="color:#000099;">or</span> $mon == <span style="color:#009900;">2</span>) {<br />
　　　　$year&#8211;;<br />
　　　　$mon += <span style="color:#009900;">12</span>;<br />
　　}<br />
　　<span style="color:#000099;">return</span> ($year + int($year / <span style="color:#009900;">4</span>) - int($year/<span style="color:#009900;">100</span>) + int($year / <span style="color:#009900;">400</span>)<br />
　　　　+ int((<span style="color:#009900;">13</span> * $mon + <span style="color:#009900;">8</span>) / <span style="color:#009900;">5</span>) + $day) % <span style="color:#009900;">7</span>;<br />
}</p>
<hr />
　次に、<span style="color:#0000ff"><strong>該当年の何月は、何日あるかを求める関数</strong></span>である。要するに閏年を計算して月の日数を計算する関数である。</p>
<hr />
<span style="color:#990000;"># &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span><br />
<span style="color:#990000;"># Function : getMonthEndDate()</span><br />
<span style="color:#990000;"># Parameter: $year:西暦</span><br />
<span style="color:#990000;"># Return   : 当該年の各月の日数テーブル</span><br />
<span style="color:#990000;"># Comment  : 当該年の各月の日数テーブルを取得</span><br />
<span style="color:#990000;"># &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span><br />
sub getMonthEndDate {<br />
　　my $year = shift; <span style="color:#990000;"># 年</span><br />
　　my $mon = shift;　　<span style="color:#990000;"># 月</span><br />
　　my @enddatetbl = (<span style="color:#009900;">31</span>,<span style="color:#009900;">28</span>,<span style="color:#009900;">31</span>,<span style="color:#009900;">30</span>,<span style="color:#009900;">31</span>,<span style="color:#009900;">30</span>,<span style="color:#009900;">31</span>,<span style="color:#009900;">31</span>,<span style="color:#009900;">30</span>,<span style="color:#009900;">31</span>,<span style="color:#009900;">30</span>,<span style="color:#009900;">31</span>);<br />
　　<span style="color:#000099;">if</span> ($year =~ m/\D/) {<br />
　　　　<span style="color:#000099;">return</span> ();<br />
　　}<br />
　　<span style="color:#000099;">if</span> ($year % <span style="color:#009900;">4</span> == <span style="color:#009900;">0</span>) {<br />
　　　　<span style="color:#000099;">if</span> ($year % <span style="color:#009900;">100</span> == <span style="color:#009900;">0</span>) {<br />
　　　　　　<span style="color:#000099;">if</span> ($year % <span style="color:#009900;">400</span> == <span style="color:#009900;">0</span>) {<br />
　　　　　　　　$enddatetbl[<span style="color:#009900;">1</span>] = <span style="color:#009900;">29</span>;<br />
　　　　　　}<br />
　　　　　　<span style="color:#000099;">else</span> {<br />
　　　　　　　　$enddatetbl[<span style="color:#009900;">1</span>] = <span style="color:#009900;">28</span>;<br />
　　　　　　}<br />
　　　　}<br />
　　　　<span style="color:#000099;">else</span> {<br />
　　　　　　$enddatetbl[<span style="color:#009900;">1</span>] = <span style="color:#009900;">29</span>;<br />
　　　　}<br />
　　}<br />
　　<span style="color:#000099;">else</span> {<br />
　　　　$enddatetbl[<span style="color:#009900;">1</span>] = <span style="color:#009900;">28</span>;<br />
　　}<br />
　　<span style="color:#000099;">return</span> @enddatetbl[$mon - <span style="color:#009900;">1</span>];<br />
}</p>
<hr />
　さらには携帯ｉモードでは罫線タグ(TR, TD)などは使えない。限られた狭い画面の中に１ヶ月の暦を表示するのはけっこう難しいのだが、これを何とか解決して表示させたのが下のフレーム内のカレンダーである。一応デフォルト表示は今月を、????年??月の左右の不等号をクリックすると、年月を変えることが出来る。</p>
<div align="center">
<iframe width="200" height="200" src="http://hpcgi3.nifty.com/sunaolabo/calender_i.cgi" frameborder="1" scrolling="auto"><br />
 </iframe></div>
<p>　実は,これはまだまだ完全ではなく、祝祭日の表示はまだ棚上げの状態である。というのも、振替休日はどうするのかとか、年によって日が変わる休日をどうするかとか、けっこう難しい問題が山積しているからである。</p>
<p>　ここまでのPerlのスクリプトが欲しい方は、下のリンクからダウンロードできる。<br />
<a href="http://sunao-labo.hp.infoseek.co.jp/software/calender_i.lzh" target="_blank">http://sunao-labo.hp.infoseek.co.jp/software/calender_i.lzh</a></p>
<p><a href="http://sunao-labo.hp.infoseek.co.jp/"><br />
<img src="http://image.space.rakuten.co.jp/lg01/83/0000169583/14/img0d2f8330zik7zj.png" border="0" alt="ソフトウェア開発の素直研究所です。お仕事のご依頼はこちらからどうぞ！" width="177" height="54" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dragon-networks.com/blog/?feed=rss2&amp;p=146</wfw:commentRss>
		</item>
		<item>
		<title>Windows 2000 で大容量ハードディスクを正しく認識させる</title>
		<link>http://www.dragon-networks.com/blog/?p=142</link>
		<comments>http://www.dragon-networks.com/blog/?p=142#comments</comments>
		<pubDate>Mon, 16 Mar 2009 08:04:00 +0000</pubDate>
		<dc:creator>すなお</dc:creator>
		
		<category><![CDATA[開発者の備忘録]]></category>

		<category><![CDATA[win2k]]></category>

		<category><![CDATA[大容量HDD]]></category>

		<guid isPermaLink="false">http://www.dragon-networks.com/blog/?p=142</guid>
		<description><![CDATA[　自分は、Windows 2000 Professional をいまだに使い続けている。最近大容量ハードディスクに交換しようとして、YahooオークションでMaxtorの250GBのハードディスクを3800円で購入した。品物が届いて、そのハードディスクをUSB接続のIDEアダプタを使ってWindows2000のPCに接続したら、正しく認識してくれない。オークションで手に入れたものなので、ひょっとしてジャンクをつかまされたかとしばらくそのまま放って置いた。

　しばらくして、そのハードディスクを買ったのを思い出して、今度はWindows XpのPCで試してみたら、なんとちゃんと認識していた。ということはWindows 2000のシステムの方に、ハードディスクの容量の壁があるということだと想像がついた。
　ネットで調べてみると、どうも128GBか、137GB辺りで容量の壁があるようである。Windows 2000 で、Service Pack 4 がインストールされていればいいのかと思っていたら、それだけでは駄目で、下のようなレジストリの修正が必要だった。
■手順
１．スタートメニューから「ファイル名を指定して実行」を入力し、
　　「regedit」と入力する。
２．レジストリエディタが起動したら以下のキーを参照する
　　HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Atapi\Parameters\
３．右側の画面で右クリックして「新規」－「DWORD値」を選び、
　　「新しい値#1」に「EnableBigLba」と入力する。
４．EnableBigLbaキーをダブルクリックして、「値のデータ」に「1」と入力する。
５．マシンを再起動する。

以上である


]]></description>
			<content:encoded><![CDATA[<p>　自分は、Windows 2000 Professional をいまだに使い続けている。最近大容量ハードディスクに交換しようとして、YahooオークションでMaxtorの250GBのハードディスクを3800円で購入した。品物が届いて、そのハードディスクをUSB接続のIDEアダプタを使って<strong>Windows2000のPCに接続したら、正しく認識してくれない</strong>。オークションで手に入れたものなので、ひょっとしてジャンクをつかまされたかとしばらくそのまま放って置いた。<br />
<img src="http://image.space.rakuten.co.jp/lg01/83/0000169583/28/imgc496278czikbzj.jpeg" alt="USB接続IDEアダプタ" width="350" height="263" /><br />
　しばらくして、そのハードディスクを買ったのを思い出して、今度はWindows XpのPCで試してみたら、なんとちゃんと認識していた。ということはWindows 2000のシステムの方に、ハードディスクの容量の壁があるということだと想像がついた。<br />
　ネットで調べてみると、<strong>どうも128GBか、137GB辺りで容量の壁があるようである。Windows 2000 で、Service Pack 4 がインストールされていればいいのかと思っていたら、それだけでは駄目で、下のような<span style="font-size: large;">レジストリの修正</span>が必要</strong>だった。<br />
■手順<br />
１．スタートメニューから「ファイル名を指定して実行」を入力し、<br />
　　「regedit」と入力する。<br />
２．レジストリエディタが起動したら以下のキーを参照する<br />
　　HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Atapi\Parameters\<br />
３．右側の画面で右クリックして「新規」－「DWORD値」を選び、<br />
　　「新しい値#1」に「EnableBigLba」と入力する。<br />
４．EnableBigLbaキーをダブルクリックして、「値のデータ」に「1」と入力する。</p>
<p>５．マシンを再起動する。<br />
<a href="http://sunao-labo.hp.infoseek.co.jp/img/regist_bigdisk.gif" target="_blank"><img src="http://sunao-labo.hp.infoseek.co.jp/img/regist_bigdisk.gif" border="0" alt="Win2Kで大容量HDDを認識させるレジストリ登録" width="400" height="204" /></a></p>
<p>以上である</p>
<p><a href="http://sunao-labo.hp.infoseek.co.jp/"><br />
<img src="http://image.space.rakuten.co.jp/lg01/83/0000169583/14/img0d2f8330zik7zj.png" border="0" alt="ソフトウェア開発の素直研究所です。お仕事のご依頼はこちらからどうぞ！" width="177" height="54" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dragon-networks.com/blog/?feed=rss2&amp;p=142</wfw:commentRss>
		</item>
		<item>
		<title>「印鑑印影作成ソフト Stamp It!」の通算ダウンロード数</title>
		<link>http://www.dragon-networks.com/blog/?p=139</link>
		<comments>http://www.dragon-networks.com/blog/?p=139#comments</comments>
		<pubDate>Sun, 01 Mar 2009 01:37:54 +0000</pubDate>
		<dc:creator>すなお</dc:creator>
		
		<category><![CDATA[開発者の備忘録]]></category>

		<guid isPermaLink="false">http://www.dragon-networks.com/blog/?p=139</guid>
		<description><![CDATA[　この間、、「印鑑印影作成ソフト Stamp It!」をベクターのライブラリ登録したが、公開ファイルリストを請求したら下のようなメールが来た。重複があったり、身内からのアクセスかもしれないが、通算のダウンロード数が16(2009/02/27時点)だった。多いか少ないかはわからないが、とりあえず試用してくれる人がいるのだと思った。
　まだ問い合わせやクレームのメールは無いのだが、ノンビリ見守っていようと思う。
&#8212;&#8211; ベクターからのメール &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
素直研究所様（ライブラリ作者番号 ：PA0?????）
弊社インターネットサイト「Vector」へのご協力ありがとうございます。
ご要望いただきました、公開作品のリストをお送りいたします。
◆作者紹介のページ◆
http://www.vector.co.jp/vpack/browse/person/an040239.html
◆現在公開されているソフト◆
&#8212;-&#60;ライブラリ作品番号:PS472706&#62;&#8212;-
印鑑印影作成 Stamp It! 1.0
setupstampIt1.00.zip 09/02/19 2,515,800
概要:印鑑印影を作成し、PDFやExcelファイルに押印できる
通算ダウンロード数:16
http://www.vector.co.jp/soft/winnt/util/se472706.html
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;


]]></description>
			<content:encoded><![CDATA[<p>　この間、、<span style="font-size: large;">「<strong>印鑑印影作成ソフト Stamp It!</strong>」</span>をベクターのライブラリ登録したが、公開ファイルリストを請求したら下のようなメールが来た。重複があったり、身内からのアクセスかもしれないが、通算のダウンロード数が<strong><span style="font-size: large; color: #ff0000;">16</span></strong>(2009/02/27時点)だった。多いか少ないかはわからないが、とりあえず試用してくれる人がいるのだと思った。<br />
　まだ問い合わせやクレームのメールは無いのだが、<span style="font-size: large;">ノンビリ</span>見守っていようと思う。</p>
<p>&#8212;&#8211; ベクターからのメール &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>素直研究所様（ライブラリ作者番号 ：PA0?????）</p>
<p>弊社インターネットサイト「Vector」へのご協力ありがとうございます。<br />
ご要望いただきました、公開作品のリストをお送りいたします。</p>
<p>◆作者紹介のページ◆<br />
http://www.vector.co.jp/vpack/browse/person/an040239.html</p>
<p>◆現在公開されているソフト◆</p>
<p>&#8212;-&lt;ライブラリ作品番号:PS472706&gt;&#8212;-<br />
印鑑印影作成 Stamp It! 1.0<br />
setupstampIt1.00.zip 09/02/19 2,515,800<br />
概要:印鑑印影を作成し、PDFやExcelファイルに押印できる<br />
通算ダウンロード数:16<br />
http://www.vector.co.jp/soft/winnt/util/se472706.html</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p><a href="http://sunao-labo.hp.infoseek.co.jp/"><br />
<img src="http://image.space.rakuten.co.jp/lg01/83/0000169583/14/img0d2f8330zik7zj.png" border="0" alt="ソフトウェア開発の素直研究所です。お仕事のご依頼はこちらからどうぞ！" width="177" height="54" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dragon-networks.com/blog/?feed=rss2&amp;p=139</wfw:commentRss>
		</item>
		<item>
		<title>自分のサイト「素直研究所」</title>
		<link>http://www.dragon-networks.com/blog/?p=137</link>
		<comments>http://www.dragon-networks.com/blog/?p=137#comments</comments>
		<pubDate>Wed, 25 Feb 2009 08:34:25 +0000</pubDate>
		<dc:creator>すなお</dc:creator>
		
		<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://www.dragon-networks.com/blog/?p=137</guid>
		<description><![CDATA[　私すなおは、しばらくドラゴン・ネットワークス株式会社からは離れることになるので、自分のサイトへのリンクを残しておきます。「離れる」と言っても、多分外からこのブログへ書き込むことはあるかもしれませんが。
　ちなみに自分のサイトは「素直研究所」。グーグルでこのキーワードで検索すると、今のところトップで自分のサイトの楽天ブログが引っかかってきます。そこにも下のようなバナーがありますので、それでもＯＫです。
私宛のメールもトップページから送信できます。

  
]]></description>
			<content:encoded><![CDATA[<p>　私すなおは、しばらくドラゴン・ネットワークス株式会社からは離れることになるので、自分のサイトへのリンクを残しておきます。「離れる」と言っても、多分外からこのブログへ書き込むことはあるかもしれませんが。<br />
　ちなみに自分のサイトは「素直研究所」。グーグルでこのキーワードで検索すると、今のところトップで自分のサイトの楽天ブログが引っかかってきます。そこにも下のようなバナーがありますので、それでもＯＫです。<br />
私宛のメールもトップページから送信できます。<br />
<a href="http://sunao-labo.hp.infoseek.co.jp/"><br />
  <img src="http://image.space.rakuten.co.jp/lg01/83/0000169583/14/img0d2f8330zik7zj.png" border="0" width="177" height="54" alt="ソフトウェア開発の素直研究所です。お仕事のご依頼はこちらからどうぞ！"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dragon-networks.com/blog/?feed=rss2&amp;p=137</wfw:commentRss>
		</item>
		<item>
		<title>　Word Pressは&#60;iframe&#62;タグが使えるようである</title>
		<link>http://www.dragon-networks.com/blog/?p=133</link>
		<comments>http://www.dragon-networks.com/blog/?p=133#comments</comments>
		<pubDate>Tue, 24 Feb 2009 07:46:14 +0000</pubDate>
		<dc:creator>すなお</dc:creator>
		
		<category><![CDATA[開発者の備忘録]]></category>

		<guid isPermaLink="false">http://www.dragon-networks.com/blog/?p=133</guid>
		<description><![CDATA[　Word PressもFC2ブログも&#60;iframe&#62;タグが使えるようである。
ということは、&#60;iframe&#62;タグが使えるので、Google Mapが使えるということである。
下の地図は、ドラゴン・ネットワークス株式会社の周辺地図である。もともとの地図が良くなくて、会社の前の道が無いのは残念であるが、取りあえず使える。
大きな地図で見る
　Google Map APIを使うとJavaScriptなどを使って、もっとカスタマイズできるようである。但し登録してAPIキーを取得する必要がある。
詳しくは下記URL
http://code.google.com/intl/ja/apis/maps/documentation/index.html
]]></description>
			<content:encoded><![CDATA[<p>　Word PressもFC2ブログも&lt;iframe&gt;タグが使えるようである。<br />
ということは、&lt;iframe&gt;タグが使えるので、Google Mapが使えるということである。<br />
下の地図は、ドラゴン・ネットワークス株式会社の周辺地図である。もともとの地図が良くなくて、会社の前の道が無いのは残念であるが、取りあえず使える。</p>
<p><iframe width="350" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.co.jp/maps?hl=ja&amp;ie=UTF8&amp;s=AARTsJphchmq1u9uXVFfIqAUqGPa-d4fvg&amp;ll=36.626989,139.981838&amp;spn=0.003014,0.003755&amp;z=17&amp;output=embed"></iframe><br /><small><a href="http://maps.google.co.jp/maps?hl=ja&amp;ie=UTF8&amp;ll=36.626989,139.981838&amp;spn=0.003014,0.003755&amp;z=17&amp;source=embed" style="color:#0000FF;text-align:left">大きな地図で見る</a></small><br />
　Google Map APIを使うとJavaScriptなどを使って、もっとカスタマイズできるようである。但し登録してAPIキーを取得する必要がある。<br />
詳しくは下記URL<br />
http://code.google.com/intl/ja/apis/maps/documentation/index.html</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dragon-networks.com/blog/?feed=rss2&amp;p=133</wfw:commentRss>
		</item>
		<item>
		<title>Perl言語でiモード版のバスの時刻表を作ってみた</title>
		<link>http://www.dragon-networks.com/blog/?p=126</link>
		<comments>http://www.dragon-networks.com/blog/?p=126#comments</comments>
		<pubDate>Thu, 12 Feb 2009 07:05:31 +0000</pubDate>
		<dc:creator>すなお</dc:creator>
		
		<category><![CDATA[開発者の備忘録]]></category>

		<category><![CDATA[Perl]]></category>

		<category><![CDATA[バス時刻表]]></category>

		<guid isPermaLink="false">http://www.dragon-networks.com/blog/?p=126</guid>
		<description><![CDATA[　ちょっと前にPerl言語の学習がてらに那須高原を走るバスの時刻表を整形して表示するプログラムを作成した話をこのブログに載せたが、今度はこの各停留所毎のバスの時刻表を携帯電話のｉモードで表示するプログラムを同じくPerlで作ってみた。下のQRコードを携帯電話でスキャンしてインターネットに接続すれば表示できるはずである。
■バス停留所時刻表

　ｉモード版もWeb版も、同じＣＳＶファイルを参照している。停留所名に～発とか、～着という名前が使われていて、それらを切り飛ばして表示しているのと、折り返し運転が１本のレコードになっているので、往路と復路の時刻を分けて表示するのにちと苦労した。これでちょっとはPerl言語が分かってきたような気がしてきた。
]]></description>
			<content:encoded><![CDATA[<p>　ちょっと前に<a href="http://www.dragon-networks.com/blog/?p=82">Perl言語の学習がてらに那須高原を走るバスの時刻表を整形して表示するプログラムを作成した話</a>をこのブログに載せたが、今度はこの<strong>各停留所毎のバスの時刻表を携帯電話のｉモードで表示するプログラム</strong>を同じくPerlで作ってみた。下のQRコードを携帯電話でスキャンしてインターネットに接続すれば表示できるはずである。</p>
<p align="center">■バス停留所時刻表<br />
<a href="http://www.dragon-networks.com/blog/wp-content/uploads/2009/02/qrcode.png"><img class="alignnone size-medium wp-image-127" title="バス時刻表QRコード" src="http://homepage3.nifty.com/sunaolabo/QRcode.png" alt="東野バス・黒磯那須地区" width="171" height="171" /></a></p>
<p>　<strong>ｉモード版もWeb版も、同じＣＳＶファイルを参照している。停留所名に～発とか、～着という名前が使われていて、それらを切り飛ばして表示しているのと、折り返し運転が１本のレコードになっているので、往路と復路の時刻を分けて表示するのにちと苦労した</strong>。これでちょっとはPerl言語が分かってきたような気がしてきた。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dragon-networks.com/blog/?feed=rss2&amp;p=126</wfw:commentRss>
		</item>
		<item>
		<title>PDFを扱える安価で扱い易いライブラリは？</title>
		<link>http://www.dragon-networks.com/blog/?p=123</link>
		<comments>http://www.dragon-networks.com/blog/?p=123#comments</comments>
		<pubDate>Fri, 06 Feb 2009 01:03:29 +0000</pubDate>
		<dc:creator>すなお</dc:creator>
		
		<category><![CDATA[開発者の備忘録]]></category>

		<guid isPermaLink="false">http://www.dragon-networks.com/blog/?p=123</guid>
		<description><![CDATA[■PDFを扱える安価で扱い易いライブラリは？
　「電子署名の方法を考える」のブログで触れたが、PDFファイルは、電子署名や暗号化などのセキュリティの考慮がなされているので、アプリケーションから思い通りに作成したり、既存のPDFを加工(或いは更新)したいという要望は当然出てくる。拙作の印鑑印影作成ソフト「Stamp It!」も既存のPDFファイルを開いて、印影が押印されたPDFを出力するので、安価で(できればフリーウェアで)、扱い易いライブラリなどがないかといろいろ探してみた。
■iTextSharpとは？
　やはりPDF加工はビジネスになると思われているのかライセンス料が10万円以上のものが多い中、フリーウェアで扱い易いという要望に適うライブラリは果たして存在した。それはiTextSharpというソフトである。
　このソフトは、iTextというJAVAのライブラリをC#に移植したものである。.NET環境で動作するiTextにはiText.NETという同じJAVA版の移植版も存在する。こちらは開発者が氏原さんという日本人のため多国語処理に強く、日本語の情報が充実しているメリットがある。どうもこちらはVisual J# .NETの再頒布可能パッケージが必要なようである。
　対するiTextSharpは、そのような再頒布可能パッケージなどは不要で、C#やVB.NETから手軽に使えるといったメリットがある。
　
■iTextSharpをダウンロードする。
　iTextSharpは、SOURCEFORGE.NETで開発されており、同サイトのダウンロードページからダウンロードできる。このブログを執筆中でiTextSharpのバージョンは4.1.2だった。
　このダウンロードサイトには、ライブラリ本体(iTextSharpのdll)だけでなく、サンプルコードを収録したチュートリアル(iTextSharp.tutorial.01.zip)、中国語、韓国語、日本語用フォントのライブラリ(iTextAsian-1.0-dll.zip)なども存在するので必要に応じてダウンロードするのがよいだろう。
　さらにVectorには、iTextSharp クラスライブラリリファレンス(.chm 形式のヘルプファイル)があり、作者が書き掛けだったり、不明な部分もあるものの、日本語で書かれているため開発には大変役に立った。

]]></description>
			<content:encoded><![CDATA[<p>■PDFを扱える安価で扱い易いライブラリは？<br />
　「電子署名の方法を考える」のブログで触れたが、PDFファイルは、電子署名や暗号化などのセキュリティの考慮がなされているので、アプリケーションから思い通りに作成したり、既存のPDFを加工(或いは更新)したいという要望は当然出てくる。拙作の印鑑印影作成ソフト「Stamp It!」も既存のPDFファイルを開いて、印影が押印されたPDFを出力するので、安価で(できればフリーウェアで)、扱い易いライブラリなどがないかといろいろ探してみた。</p>
<p>■iTextSharpとは？<br />
　やはりPDF加工はビジネスになると思われているのかライセンス料が10万円以上のものが多い中、フリーウェアで扱い易いという要望に適うライブラリは果たして存在した。それはiTextSharpというソフトである。<br />
　このソフトは、iTextというJAVAのライブラリをC#に移植したものである。.NET環境で動作するiTextにはiText.NETという同じJAVA版の移植版も存在する。こちらは開発者が氏原さんという日本人のため多国語処理に強く、日本語の情報が充実しているメリットがある。どうもこちらはVisual J# .NETの再頒布可能パッケージが必要なようである。<br />
　対するiTextSharpは、そのような再頒布可能パッケージなどは不要で、C#やVB.NETから手軽に使えるといったメリットがある。<br />
　<br />
■iTextSharpをダウンロードする。<br />
　iTextSharpは、<a href="http://sourceforge.net/" target="_blank">SOURCEFORGE.NET</a>で開発されており、同サイトの<a href="http://sourceforge.net/project/showfiles.php?group_id=72954" target="_blank">ダウンロードページ</a>からダウンロードできる。このブログを執筆中でiTextSharpのバージョンは4.1.2だった。<br />
　このダウンロードサイトには、ライブラリ本体(<a href="http://sourceforge.net/project/showfiles.php?group_id=72954&#038;package_id=72901&#038;release_id=601953" target="_blank">iTextSharpのdll</a>)だけでなく、サンプルコードを収録したチュートリアル(<a href="http://sourceforge.net/project/showfiles.php?group_id=72954&#038;package_id=166294&#038;release_id=362972" target="_blank">iTextSharp.tutorial.01.zip</a>)、中国語、韓国語、日本語用フォントのライブラリ(<a href="http://sourceforge.net/project/showfiles.php?group_id=72954&#038;package_id=166294&#038;release_id=362972" target="_blank">iTextAsian-1.0-dll.zip</a>)なども存在するので必要に応じてダウンロードするのがよいだろう。<br />
　さらにVectorには、<a href="http://www.vector.co.jp/soft/winnt/writing/se462217.html" target="_blank">iTextSharp クラスライブラリリファレンス</a>(.chm 形式のヘルプファイル)があり、作者が書き掛けだったり、不明な部分もあるものの、日本語で書かれているため開発には大変役に立った。</p>
<p align="center"><a href="http://sourceforge.net/project/showfiles.php?group_id=72954"><img src="http://img.simpleapi.net/small/http://sourceforge.net/project/showfiles.php?group_id=72954" alt="" width="128" height="128" hspace="4" vspace="4" align="left" border="0" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dragon-networks.com/blog/?feed=rss2&amp;p=123</wfw:commentRss>
		</item>
	</channel>
</rss>
