These pages are written by only Japanese.
|
Namazu for hns による簡易全文検索です。 詳細は 詳細指定/ヘルプをご参照下さい。 |
|||||||||||||||||||||||||||||||||||||||||||||
awm.jp# apt-get install kernel-doc kernel-headers kernel-source 取得パッケージ: 33.5MB のアーカイブを取得します。インストール後は 9327kB が使用 されます。 続行しますか? [Y/n]y <略> kernel-headers ################################################## kernel-source ################################################## パッケージ Makefile は file index 中にリストされていません パッケージ Makefile は file index 中にリストされていません パッケージ Makefile は file index 中にリストされていません <略>なんか。怒られてますが・・・
awm.jp# apt-get upgrade ファイル依存を処理しています... 完了 パッケージリストを読みこんでいます... 完了 依存情報ツリーを作成しています... 完了 0 個のアップグレードパッケージ, 0 個の新規パッケージ, 0 個の削除/リプレースパッ ケージ, 0 個の保留パッケージがあります。
class hoge { ; } class hogehoge extends hoge { ; } public class PolymorTest { private void println(String s) { System.out.println(s); } public static void main(String args[]) { new PolymorTest(); } public PolymorTest() { foo(new hogehoge()); } void foo(hoge h) { println("foo(hoge)"); baa(h); } void foo(hogehoge h) { println("foo(hogehoge)"); baa(h); } void baa(hoge h) { println("baa(hoge)"); baz(h); } void baz(hoge h) { println("baz(hoge)"); } void baz(hogehoge h) { println("baz(hogehoge)"); } }今まで baz(hogehoge h) が実行されるものだと思っていたけど、 実際に動かしてみると、
foo(hogehoge) baa(hoge) baz(hoge) ☆ これが予想外 ☆という事で。(ρ_;
void baz(hoge h) { if (h instanceof hogehoge) { baz((hogehoge) h); return ; } println("baz(hoge)"); } void baz(hogehoge h) { println("baz(hogehoge)"); }とかで実現できるけど、これじゃ動的束縛のメリットが無いので、
void baa(hoge h) { println("baa(hoge)"); baz(h); } void baa(hogehoge h) { println("baa(hogehoge)"); baz(h); }のように baa(hogehoge h) を追加して、型落ちを防ぐか、 そもそも、設計を見直して、 baa を消して、
void foo(hoge h) { println("foo(hoge)"); baz(h); } void foo(hogehoge h) { println("foo(hogehoge)"); baz(h); }てな具合で、foo から baz を直接呼ばせるべきな気もするんだけど。
IrcWriter::send: JOIN #よや:*.jp ircEventHandle:: A EventActive An unexpected exception has been detected in native code outside the VM. Unexpected Signal : 11 occurred at PC=0xBF008850 Function=[Unknown.] Library=(N/A) NOTE: We are unable to locate the function name symbol for the error just occurred. Please refer to release documentation for possible reason and solutions. Current Java thread: Dynamic libraries: Can not get information for pid = 16391 Local Time = Tue Dec 3 13:52:46 2002 Elapsed Time = 0 # # The exception above was detected in native code outside the VM # # Java VM: Java HotSpot(TM) Client VM (1.4.0-b92 mixed mode) # # An error report file has been saved as hs_err_pid16391.log. # Please refer to the file for further information. #Windows で JXTA ごっこしてると、たまに見掛けるけど、 UNIX系(今回は NetBSD) では始めてみた。
awm.jp% ls -l *.core -rw------- 1 yoya yama 242380800 Dec 3 13:58 java.coreうわーぃ。
class Event { ; } class EventActivate extends Event { ; } class EventMessagee extends Event { ; }という継承関係があるとして、
class Proxy implements EventListener { ... public boolean eventHandle(Event event) { if (event instanceof EventActivate) { EventListener((EventActivate) event); return ; } throw new UnknownEventException(); } public boolean eventHandle(EventMessage msg) { /* メッセージ処理 */ } }とかして、無限ループしてみるテスト。;´Д`)
awm.jp# apt-get upgrade パッケージリストを読みこんでいます... 完了 依存情報ツリーを作成しています... 完了 以下のパッケージがアップグレードされます: Canna Canna-devel glibc glibc-common glibc-devel glibc-profile libcanna nscd vutils 9 個のアップグレードパッケージ, 0 個の新規パッケージ, 0 個の削除/リプレースパッ ケージ, 0 個の保留パッケージがあります。 取得パッケージ: 42.2MB のアーカイブを取得します。インストール後は 26.2kB が解放 されます。 続行しますか? [Y/n]yう〜ん。
パッケージ LC_MESSAGES は file index 中にリストされていませんって行が大量に出ていた気がするけど。ま、気のせいって事で…
難しいのは、火星・地球間のインターネットを結ぶ上で、 大きな遅延が生ずることだ」とテネンハウスは述べ、 火星から地球へのデータ送信に3分かかると指摘した。 これはデータをキャッシュすることで、 ちょうど電子メール・システムのようにネットワークを機能させられそうだという。このキャッシュって、Internet2 のアレかなぁ…
スレッド = アニメーション のような雰囲気が…確かに… 見た目で分かりやすいですし。
スレッド = セッション マルチスレッド = マルチセッションなサーバというイメージを持ってたりして… (少数派かしら
私は今回の北朝鮮への支援の事実についても新聞、 テレビ等の報道により初めて知ったものであります。個別の案件に一々対処しないってのは分かるけど、 今回の件のように場合によっては国策に絡むようなナーバスな案件が 会長の耳に入らないってのは、 いくらなんでも組織としておかしい。
さきの第二次世界大戦で日本が敗戦したとき、 食糧不足に直面している祖国救援のために<略> 「ララ物資」という援助物資を日本に送り届けてくれました。戦時中も日本国民は食糧難で苦しんでいましたが、 そこに食糧を送るような国やら組織があったかどうかは知りません。
「熊谷遊技業協同組合(在日本朝鮮人総聯合会埼玉県北部支部)」… これが本当だとすればアレですねぇ…
「敵に塩を送るのは、日本の美習」- 日本外交協会「坂本重太郎」それは「人は城」として国を豊かにする事が国力に繋がるとして 仁政をしいていた武田信玄が相手だから言える事であって、 前科もち の国にそういう論理が通るとは…
外務省から一切の補助金やそれに類する補助は頂いておりません。これも嘘っぽい… 外務省の機密費ってこういう所に使われるんですね…
4.「コミュニティ」は何処へ向かうのかから後の文章は、まさしくチャットや掲示板の世界…
シアトルでの会議でHMDを装着していた人々とのやり取りについて、 ピーカースキー氏は、 「テレビを観ている人に話しかけるようなものだった。 相手はフン、フンとしか言わなかった。 社交能力に影響を与えるのは間違いない」 と語った。まぁ、聖徳太子でない限りそうなるよね。
1年に2人のノーベル賞受賞という事実にも見られるように、 21世紀の世界にとって日本人の資質や要素はすてたものではない。この主張をあちらこちらで聞くけど、 ノーベル賞みたいに権威があるが故に裏付けに手間と時間がかかるであろう賞は、 過去の栄光を讃える意味合いでしか無い訳で、 20世紀の日本は頑張ってたかもという推測は出来るけど、 21世紀にはあまり関係ないと思います。
awm.jp% wget http://www.apache.org/dist/ant/binaries/jakarta-ant-1.5.1-bin.zip <略> Length: 7,879,297 [application/zip] <略> awm.jp% unzip Archive: jakarta-ant-1.5.1-bin.zip Archive: jakarta-ant-1.5.1-bin.zip creating: jakarta-ant-1.5.1/ creating: jakarta-ant-1.5.1/bin/ creating: jakarta-ant-1.5.1/docs/ <略> awm.jp% su Password: # mkdir -p /usr/local/java/jakarta/ # mv jakarta-ant-1.5.1 /usr/local/java/jakarta/ant-1.5.1 # chmod +x /usr/local/java/jakarta/ant-1.5.1/bin/ant # ln -s /usr/local/java/jakarta/ant-1.5.1 /usr/local/java/jakarta/ant # exit awm.jp% cat >> .profile export ANT_HOME=/usr/local/java/jakarta/ant export PATH=${PATH}:${ANT_HOME}/bin ^d参考URL
wget --user-agent ="Mozilla/4.0 (compatible; MSIE 6.0; Win32)" 〜等として IE や Opera だと詐称すればアクセスできる事が分かったので、 .wgetrc でどうにか出来ないか調べてみた。
header="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)"こうすると、wget/1.7〜 , Mozilla 〜 のようにデフォルトで付く wget の User-Agent + Mozilla の User-Agent が送られる。 man をよく読むと header=〜 は追加指定って書いてあるので、当然なんだけど。
user-agent = Mozilla/4.0 (compatible; MSIE 6.0; Win32)これでオッケー
[packlog] logfile=/home/yoya/irc/tech/tech%y%M%D logfile=/home/yoya/irc/dev/dev%y%M%D address=<ないしょです> from=yoya@awm.jp subject= irc log実行
bash-2.05$ ./madoka.pl -rc ircnet.rc -modes ircnet.modes bash-2.05$ [ERROR] Package Mail::Sendmail not installed!はぅ… Semdmail が必要らしいので、package から入れてみる。
% cd <略>/pkgsrc/mail/p5-Mail-Sendmail % make <略> Passwprd: # make install p5-Mail-Sendmail-0.78 requires installed package p5-MIME-Base64-2.12 p5-Mail-Sendmail-0.78 requires installed package perl-5.6.1nb7…
% cd <略>/pkgsrc/lang/perl5 % make => Checksum OK for perl-5.6.1.tar.gz. ===> Extracting for perl-5.6.1nb7 % env FORCE_PKG_REGISTER=yes make install ===> Installing for perl-5.6.1nb7 ===> Becoming root@alt.awm.jp to install perl-5.6.1nb7. /usr/bin/su Password:ついでに ssh, openssh, openssl も最新に…
cd <略>/pkgsrc/lang/jini make ====================================================================== The file jini-1_2_1_001-src.zip containing the Jini(TM) Technology Starter Kit must be fetched into /usr/src/curr/pkgsrc/distfiles from http://wwws.sun.com/software/communitysource/jini/download.html ======================================================================なるほど。 上記 URL ページから手動で取ってきてと…
cp <略>/jini-1_2_1_001-src.zip /usr/src/curr/pkgsrc/distfiles make install <略> /usr/bin/su Password: install -d -o root -g wheel -m 555 /usr/pkg/jini /usr/sbin/chown -hR root:wheel /usr/src/curr/pkgsrc/lang/jini/work/jini1_2_1_001 cd /usr/src/curr/pkgsrc/lang/jini/work/jini1_2_1_001 && /bin/pax -rw . /usr/pkg/jini ===> Registering installation for jini-1.2.1nb1 jini-1.2.1nb1 requires installed package sun-jre13-1.0.2nb1 jini-1.2.1nb1 requires installed package suse_base-7.3nb1 jini-1.2.1nb1 requires installed package suse_compat-7.3 jini-1.2.1nb1 requires installed package suse_x11-7.3nb2
import java.util.Date; public class Scheduler { public static void main(String args[]) { Date date = new Date(); long time = date.getTime(); System.out.println("XXX: before"); long xxx = ((Date)(null)).getTime(); System.out.println("XXX: after"); } }ちなみに、Linux2.4 + JDK1.4 や NetBSD-curr + Linux_suse + JDK1.3 は、 きちんと Null pointer exception で終了します。 あと、
long xxx = ((Date)(null)).getTime();ってのは元々は、
Date lastNotify = null; // クラスの変数 <略> long xxx = lastNotify.getTime(); // どこかのメソッドの中です。
洋書は5000円以上のお買い上げで、500円OFF CD・DVD・ビデオはあわせて10000円以上のお買い上げで、500円OFF 絶対お得なダブル・キャンペーンをお見逃しなく!あぅ… 見のがした…
同社は無線LANによるネット接続サービスの実証実験を昨年夏から始め、 今年4月から有料に切り替えた。しかし、実験の際には7000人いた会員が、 有料化をきっかけに急減し、現在は1300人と低迷していた。お金を払う程の価値を感じなかったのか…
# cd curr/src/ # ./build -t <略> ln -f /usr/src/curr/src/tools/obj/tools.NetBSD-1.6J-i386/lib/groff/soelim \ /usr/src/curr/src/tools/obj/tools.NetBSD-1.6J-i386/bin/nbsoelim ln -f /usr/src/curr/src/tools/obj/tools.NetBSD-1.6J-i386/lib/groff/tbl \ /usr/src/curr/src/tools/obj/tools.NetBSD-1.6J-i386/bin/nbtbl
# cd ./sys/arch/i386/conf/. # ../../../../tools/obj/tools.NetBSD-1.6J-i386/bin/nbconfig GENERIC ../../../../arch/i386/conf/files.i386:372: \ cannot open ../../../../compat/darwin/files.darwin for reading: \ No such file or directoryさてと… (汗
「オブジェクトがコピーできるような状態に置かれること」 「ユーザーが望み、かつ可能ならばオブジェクトをコピーできること」 「ユーザーがそれぞれ広帯域の通信チャンネルに接続されていること」とこれはファイル共有の基本みたいなものですね…
(医) う〜ん。MRI 検査まだしてないね。 (よ) あ。出来れば検査をお願いしたいのですが。てな訳で MRI 検査決定。来週の水曜日に予約した。 15分前までに予約の紙と保険証を持っていけばいいらしい。
Sun Dec 8 13:09:20 UTC 2002 lukem * tagged as "tnftpd 2.0 beta2" * build & install as "tnftpd" (instead of "ftpd") * provide replacement for strsuftollx() * update to NetBSD-current 2002-10-08
mkthum.pl には大変お世話になっております。 画像の整理には、このツールがないと生活できない程、 自分にとって大切なツールです。 使用している際に2点気になる点がございましたので、 既にご存知の事かもしれませんが、ご報告致します。 どちらもVer.0.7.2の話ですが、 0.6.x でも同様な挙動を示します。 (1) -j オプションを付けない場合、thums 一覧で gif画像が表示されない。 gif のまま thum を作成するルーチンを確認しましたところ、 thums のファイル名に gif の拡張子をつけますが、index から張られる thums img リンクは jpg の拡張子がつきますので thums 一覧で画像を表示した時、gif の所の img のリンクが切れます。 -j オプションに対応して、処理を変える部分が数箇所ありますが、 405行目を見ると、 if(!opt_j){ となっていましたので、 if(!$opt_j){ に修正する事で、上記の問題を回避しております。 (2) 壊れた gif イメージで size が正常に取得できない時、処理を中断してしまう。 当方の環境では、 identify: Not a GIF image file (./tmp/img20021005053744.gif) [そのようなファイルやディレクトリはありません]. identify: Missing an image file name. Illegal division by zero at /home/upa/bin/mkthum.pl line 351. のように表示されます。 この症状につきましては、&get_picture_size($file); で取得した $width, $height の チェックを行い、!defined や 0以下の条件で、next でループの先頭に 戻るようにして凌いでおります。 以上、2点報告でした。 このような素晴しいツールを公開して下さり感謝いたします。 そしてより多くの人がこのツールで幸福になれたらと思います。
私たちは、自らネットワークを構築し、自己修復を行い、 消費電力を自己管理できるデバイスの開発に取り組んでいます。 このシステムには、ただ監視するだけでなく、 それ以上の能力を持つアクチェータ(作動装置)を採用しています。 例えば、このアクチュエータはサンプルを取り出すことができます。 また、視覚/聴覚的な情報を取得する小型センサーも備わっています。 そのサイズはチップ上の回路に合わされているので、布地に織り込んだり、 コンクリートに混ぜ込むことができます。どこかで聞いたような… u 氏の研究を思い出した… (謎
収録するディスクは「コレクターズ・エディション」の倍となる4枚組み。 ディスク2枚に渡って収録する本編には、まったく新しいエピソードを6個追加。 さらに、既存のチャプタにも新シーンが追加され、再編集されている。 その結果、本編の収録時間は208分となり、劇場公開と同じ内容の 「コレクターズ・エディション」より30分も長くなっている。 まさにボリューム満点だ。騙された…
同じく54Mbpsに対応したIEEE 802.11aより、チップ価格が安く、 屋内での通信安定性も優れているという。e 氏の話だと、11a はそもそも屋外での通信はダメらしい。
yoya@awm.jp% su Password: # rpm -ivh vnc-3.3.5-1.i386.rpm <略>サーバを起動。
yoya@awm.jp% vncserver You will require a password to access your desktops. Password: Verify: New 'X' desktop is ns.awm.jp:1 Creating default startup script /home/yoya/.vnc/xstartup Starting applications specified in /home/yoya/.vnc/xstartup Log file is /home/yoya/.vnc/ns.awm.jp:1.log
yoya@alt% cd <略>/pkgsrc/net/vnc yoya@alt% make <略> local: vnc-3.3.3r2_unixsrc.tgz remote: vnc-3.3.3r2_unixsrc.tgz 500 'EPSV': command not understood. 227 Entering Passive Mode (129,169,98,106,145,57) 200 PORT command successful. 150 Opening BINARY mode data connection for vnc-3.3.3r2_unixsrc.tgz (2072772 byt es). 0% | | 0 0.00 KB/s --:-- ETAこのまま進まない。ダメっぽい…
yoya@alt% tar xvfz vnc-3.3.5-unixsrc.tar.gz cd vnc-3.3.5-unixsrc ./configure yoya@alt% make <略> /usr/X11R6/lib/libXaw.so: warning: tmpnam() possibly used unsafely, use mkstemp() or mkdtemp()warning が気になるけど…
yoya@alt% cd Xvnc yoya@alt% make World <略> Sat Dec 14 13:39:16 JST 2002 Full build of Release 6.3 of the X Window System complete. yoya@alt% cd .. yoya@alt% su .. Password: # ./vncinstall /usr/local/bin # mkdir -p /usr/local/vnc/classes # cp classes/* /usr/local/vnc/classesで、実行。
yoya@alt% vncserver You will require a password to access your desktops. Password: Verify: New 'X' desktop is alt.awm.jp:1 Creating default startup script /home/yoya/.vnc/xstartup Starting applications specified in /home/yoya/.vnc/xstartup Log file is /home/yoya/.vnc/alt.awm.jp:1.log
yoya@alt% mkdir JXTA_stable_2002_09_24 yoya@alt% cd JXTA_stable_2002_09_24/ yoya@alt% unzip ../JXTA_stable_2002_09_24.zip <略> yoya@alt% mkdir all yoya@alt% cd all yoya@alt% unzip ../all.zip <略> yoya@alt% mkdir instantp2p yoya@alt% cd instantp2p yoya@alt% unzip ../instantp2p.zip動作確認
yoya@alt% pwd <略>/JXTA_stable_2002_09_24/all/instantp2p yoya@alt% sh ./unix/ip2p.shmyjxta が起動して外部の RDV と継るのを確認。 そして、インストール (コピーするだけ
yoya@alt% pwd <略>/JXTA_stable_2002_09_24/all/instantp2p yoya@alt% cp lib/*.jar ~/lib/java/jxta/.環境設定 .bashrc (もしくは .profile) に追加
export JAVA_LIB=/home/yoya/lib/java export JXTA_LIB=$JAVA_LIB/jxta for f in $(\ls $JXTA_LIB/*.jar) do CLASSPATH=$CLASSPATH:$f done export CLASSPATHNetBSD1.6 + Linux_suse + JDK1.4 だと rdv と接続してくれなかった。 なので、JDK1.3 で動かす事にする。
あぁ、なるほど、「掘っては埋める」という噂の…(有) 藤建設 工事予告 期間 平成14年12月12〜22日 時間 1:00 〜 6:00 路面切削工
(よ) あの。その前の家に住んでるんですけど。 深夜にこんな大がかりな工事されると眠れないすけど… (泣おっちゃんの返事。
昼間とかに申請しても、この道路は交通量が多いので、 役所から許可が降りないんですよぉ。
昼間とか迷惑のかからない時間に工事をしたいのは、 やまやまなんですけどねぇ。ほんとに残念です〜。
いやぁ。はっはっはっ…
all: work <略> work: rsync -ruvz -e ssh --exclude '*~' --exclude '#*#' \ "yoya@awm.jp:/home/yoya/work/*" work/.のようにして、make コマンドを打つ事で同期をとっているが、 sync 中に対象ファイルがリスト表示されているのに、 ディレクトリを 覗くと、実際にはコピーされていない。
bash-2.05$ ^d . .^M ..ぅあ… そっか…
rsync -ruvz -e ssh --exclude '*~' --exclude '#*#' \^M "yoya@awm.jp:/home/yoya/work/*" work/.^Mのように理解した訳ね。
yoya@alt% mv .[^.] test
yoya@alt% ls test yoya@alt% rm -rf test # (ぉぃふぅ…
結論としては、 「適切な政策がインターネットの硬直化を防ぎつつも、 知的財産権を保護できるということで、 社会全体の利益最大化を考えたバランスのとれた著作権法が重要である」 とした。
cirne> interesting...I have a java chat system I've developed and am considering extending it to P2P with jwta yoya> Is it published? > chat system cirne> Yes, it's at www.intercommunicate.com yoya> thank you. cirne> sure, thanks無茶苦茶な英語だけど通じたらしい。やはり会話は気持ち… # 言い訳 読んでみた
yoya> I understood that It's has web chat interface. cirne> Yes, I started writing the chat in '97...it's currently a java App and front end applet cirne> There's also a chat client App that runs outside the web yoya> I think very interrest things if your char system is linked by jxta network. cirne> Yes, I have to learn more about jxta, yoya要するに、
<かなり後で外の人に対する返事> cirne> well I'm looking to apply jxta to a chat system I have to make it p2p and extend to collaborationという事をしてる訳で…
voyager> i'm currently converting it into a webservice voyager> so other people can reuse it in their own apps voyager> http://homer.csm.port.ac.uk/student-projects/undergrad/searled/ふ〜む なるほどなるほど〜
Could not connect - peer might not be running PEER0:Could not run method - not connected to peer Could not run exit method - not connected to peer
Could not connect - peer might not be running Could not run method - not connected to peer Could not run exit method - not connected to peerしくしく… (ρ_;
gonzo> re jxta/chat applications i work on http://myjxta2.jxta.org and would love to have some help :) gonzo> i'm using myjxta2 right now. there's ample features we could add.myJXTA2 開発者 *1 キタキタキタキタ━━━(゜∀゜≡(゜∀゜≡゜∀゜)≡゜∀゜)━━━━!!
gonzo> if folks are interested, the "refactor branch" of myjxta2 is available via "cvs -d :pserver:{USER}@jxta.org:/cvs co -r refactor myjxta2refactor ブランチで生活しているとの事。
gonzo> there's a ton'o good stuff to build onto myjxta(2) but at this time i'm slashing out bogus code, nuking dialogs (opting for tabbedpanes), and removing the redundant listener infrastructure.まぁ、そこまで宣伝されたら入れない訳にもいかないので、 インストールして起動してみた。
yoya-myjxta2> I see that myjxta2 has customized jxta configuration ui. It's cool. gonzo> functionally they are all pretty close. the issue, i think, is more of code stability so that people can run it reliably and extend it with cool features. when i started trying to do the later i ran into troubles, hence the "refactor" spin. <略> gonzo> it is customized but we need to make it better. it looks good from the ui layer but internally it is a bit scattered. we can fix that.なるほど…
yoya-myjxta2> hmm. I can join only one group at once with myjxta2. gonzo> re groups i suspect myjxta2 has problems based on the underlying group management code. i'm working to fix that gonzo> with the "refactor" branch so that one can join n groups ... not just be a member of one. gonzo> at this time, myjxta2.refactor has a tabbed pane and the tab is the name of the group ... but we only support NetPeerGroup right now. prototype issue.複数グループで並列で会話する機能も作っているらしい。 タブ切替え方式で、NetPeerGroup (デフォルトで参加するネットワーク全体を示すグループ) を割り当てる所までは出来ているとの事。
gonzo> get jdk 1.4.1 gonzo> get ant 1.5 gonzo> cvs -d :pserver:{USER}@jxta.org:/cvs co -r refactor myjxta2 gonzo> cd myjxta2/binding/java gonzo> ant bootstrap gonzo> ant run試しにやってみた。
yoya@alt% ant bootstrap Buildfile: build.xml bootstrap: <略> BUILD SUCCESSFUL Total time: 1 minute 43 seconds yoya@alt% ant run Buildfile: build.xml run: compile: <略>動いた… けど、twm だとレイアウトが崩れて全然使い勝手がよくない感じ。
yoya@alt% mkdir -p ~/src/www ; cd ~/src/www yoya@alt% wget http://jakarta.apache.org/builds/jakarta-tomcat-4.0/\ release/v4.1.12/bin/jakarta-tomcat-4.1.12.zip <略> yoya@alt% su Password: # mkdir -p /usr/local/java/jakarta # chown yoya /usr/local/java/jakarta # exit yoya@alt% cd /usr/local/java/jakarta yoya@alt% unzip ~/src/www/jakarta-tomcat-4.1.12.zip <略> yoya@alt% mv jakarta-tomcat-4.1.12 tomcat-4.1.12環境変数の設定
export TOMCAT_HOME=/usr/local/java/jakarta/tomcat-4.1.12 export PATH=${PATH}:${TOMCAT_HOME}/bin
yoya@alt% cd /usr/local/java/jakarta/tomcat-4.1.12 yoya@alt% ./startup.sh Using CATALINA_BASE: /usr/local/java/jakarta/tomcat-4.1.12 Using CATALINA_HOME: /usr/local/java/jakarta/tomcat-4.1.12 Using CATALINA_TMPDIR: /usr/local/java/jakarta/tomcat-4.1.12/temp Using JAVA_HOME: /usr/pkg/java/sun-1.3.1これでサーバが動作したはずなので、lynx で *1 確認。
lynx http://localhost:8080/examples/servlets
Hello World [execute.gif] Execute [code.gif] Source Request Info [execute.gif] Execute [code.gif] Source Request Headers [execute.gif] Execute [code.gif] Source Request Parameters [execute.gif] Execute [code.gif] Source Cookies [execute.gif] Execute [code.gif] Source Naming [execute.gif] Execute [code.gif] Source Sessions [execute.gif] Execute [code.gif] Source上記の文字が表示されるので、Execute の実行結果と Source を見比べる。
import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class RequestParamExample extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("GET Request. No Form Data Posted"); } public void doPost(HttpServletRequest request, HttpServletResponse res) throws IOException, ServletException { Enumeration e = request.getParameterNames(); PrintWriter out = res.getWriter (); while (e.hasMoreElements()) { String name = (String)e.nextElement(); String value = request.getParameter(name); out.println(name + " = " + value); } } }こんな感じで、request を解釈して response に結果を渡せばいいっぽい。
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="role1"/> <role rolename="tomcat"/> <user username="role1" password="tomcat" roles="role1"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="both" password="tomcat" roles="tomcat,role1"/> </tomcat-users>あれ… デフォルトの設定が…
<user username="yoya" password="<内緒>" roles="admin"/>生のパスワードを書き込むので、他の人に見られないようにしてと…
chmod og-rwx tomcat-users.xmlふむ。ダメかユーザ名入れても拒否される。 再起動と… # もっと良い方法がありそうだけど
yoya@awm.jp% shutdown.sh ; startup.sh Using CATALINA_BASE: /usr/local/java/jakarta/tomcat-4 Using CATALINA_HOME: /usr/local/java/jakarta/tomcat-4 Using CATALINA_TMPDIR: /usr/local/java/jakarta/tomcat-4/temp Using JAVA_HOME: /usr/java/j2sdk1.4.0 Using CATALINA_BASE: /usr/local/java/jakarta/tomcat-4 Using CATALINA_HOME: /usr/local/java/jakarta/tomcat-4 Using CATALINA_TMPDIR: /usr/local/java/jakarta/tomcat-4/temp Using JAVA_HOME: /usr/java/j2sdk1.4.0これでおーけー。
User-agent: * Disallow: /~yoya/のように指定をして検索対象から外して貰っていたのですが、 これを止めて、検索に引っかかるようにしました。
yoya@alt% cd ~/src/www yoya@alt% wget http://xml.apache.org/axis/dist/1_0/xml-axis-10.zip yoya@alt% su Password: # cd /usr/local/java/jakarta # unzip ~/src/www/xml-axis-10.zip # cd xml-axis-10TOMCAT への AXIS のインストール
# cp -r webapps/axis $TOMCAT_HOME/webapps/.環境設定
export AXIS_HOME=/usr/local/java/xml-axis-10 export AXIS_LIB=$AXIS_HOME/lib for f in $(\ls $AXIS_LIB/*.jar) do CLASSPATH=$CLASSPATH:$f done export CLASSPATHTOMCAT を再起動。
yoya@alt% shutdown.sh ; startup.sh Using CATALINA_BASE: /usr/local/java/jakarta/tomcat-4.1.12 Using CATALINA_HOME: /usr/local/java/jakarta/tomcat-4.1.12 Using CATALINA_TMPDIR: /usr/local/java/jakarta/tomcat-4.1.12/temp Using JAVA_HOME: /usr/pkg/java/sun-1.3.1 Using CATALINA_BASE: /usr/local/java/jakarta/tomcat-4.1.12 Using CATALINA_HOME: /usr/local/java/jakarta/tomcat-4.1.12 Using CATALINA_TMPDIR: /usr/local/java/jakarta/tomcat-4.1.12/temp Using JAVA_HOME: /usr/pkg/java/sun-1.3.1てな訳で、 をチェックすると。
Optional Components Found Mail API (javax.mail.internet.MimeMessage) at /usr/local/java/jakarta/tomcat-4.1.12/common/lib/mail.jar Warning: could not find class org.apache.xml.security.Init from file xmlsec.jar XML Security is not supported See http://xml.apache.org/security/まぁ、Optical なのは後にしよう。
yoya@alt% cd $AXIS_HOME yoya@alt% java samples.userguide.example3.Client こんにちは The AXIS engine could not find a target service to invoke! targetService is nullサービスを見付ける為のおまじないが必要らしい。
yoya@alt% java org.apache.axis.client.AdminClient \ samples/userguide/example3/deploy.wsdd - Processing file samples/userguide/example3/deploy.wsdd - <Admin>Done processing</Admin>うむ…これで…
yoya@alt% java samples.userguide.example3.Client こんにちは The AXIS engine could not find a target service to invoke! targetService is nullあぅぅぅ… (泣
coding system = eucを設定しているのにも関わらず文字化けをするので、 困っていたところ、以下のページをたまたま見付けた解決。
samba 2.2.4のman smb.conf(5) http://www.samba.gr.jp/project/translation/2.2.4/manpages/smb.conf.5.html 上記manによると、client code page = 932の時だけcoding systemが有効になるそうです。だから coding system = EUC client code page = 932 でいいのではないでしょうか。
google : jxta namazu -> /~yoya/ google : RealVNC インストール -> /~yoya/namazu に手を出す予定はありません。
yoya@awm.jp% cd $AXIS_HOME yoya@awm.jp% cp samples/userguide/example2/Calculator.java \ $TOMCAT_HOME/webapps/axis/.ソースを置いておけば、Axis が勝手にコンパイルしてくれるらしい。
yoya@awm.jp% java samples.userguide.example2.CalcClient -p8080 add 2 5 Got result : 7ふむ。これは大丈夫。
この技術を利用すると、新たな視聴希望ユーザーは、 すでにコンテンツを視聴しているユーザーを経由してラジオを聞くことになる。なるほど。ユーザにも仕事を肩代りさせると。
こうしたことを総合的に考えれば、 とにかく音質重視ということであれば、 ATRAC3plusを用いるのはお勧めできない。 とはいえMP3程度の音質はキープしているわけで、 通勤途中にポータブル機で聴くというレベルであれば、 ATRAC3plusの48kbpsでも十分だろう。低ビットレートに強いらしい。
=========================================================================== The following files should be created for inn-2.3.3: /etc/rc.d/innd (m=0755) =========================================================================== =========================================================================== You may wish to customize the following files for inn-2.3.3: /var/news/etc/actsync.cfg /var/news/etc/actsync.ign /var/news/etc/buffindexed.conf /var/news/etc/control.ctl /var/news/etc/cycbuff.conf /var/news/etc/distrib.pats /var/news/etc/expire.ctl /var/news/etc/incoming.conf /var/news/etc/inn.conf /var/news/etc/innfeed.conf /var/news/etc/innreport.conf /var/news/etc/innwatch.ctl /var/news/etc/moderators /var/news/etc/motd.news /var/news/etc/news2mail.cf /var/news/etc/newsfeeds /var/news/etc/nnrpd.track /var/news/etc/nntpsend.ctl /var/news/etc/ovdb.conf /var/news/etc/overview.fmt /var/news/etc/passwd.nntp /var/news/etc/radius.conf /var/news/etc/readers.conf /var/news/etc/sasl.conf /var/news/etc/storage.conf ===========================================================================…
cp qant ~/bin/.さてと、実行。
bash-2.05$ qant /home/yoya/bin/qant:23:in `require': No such file to load -- optparse (LoadError) from /home/yoya/bin/qant:23はぅ…
cd pkgsrc/devel/ruby-optparse/ make install <略> ===> Registering installation for ruby-optparse-0.8.6 ruby-optparse-0.8.6 requires installed package ruby-base-1.6.7nb3さて…
/home/yoya/bin/qant:24:in `require': No such file to load -- nqxml/treeparser (LoadError) from /home/yoya/bin/qant:24一個一個潰して行かないとダメか…
カウントダウン有ブザー音 カウントダウン有ドリル音 カウントダウン有ドリル音 2重和音 カウントダウン無ブザー音 カウントダウン無ブザー音 2重和音 カウントダウン無ドリル音 カウントダウン無ドリル音 2重和音 カウントダウン無ブザー音 2重和音 2拍子のリズム (長時間) カウントダウン無ドリル音 2重和音 3拍子のリズム (長時間)着替えもふくめて30分丁度でしたので、 検査自体の所要時間は、およそ25分だと推測します。
(教師)「◯◯からお前たちが壁を傷付けているって聞いたけど本当か?」 (奴等)「やってません」予想通りでした。
This is the distribution page for the Apache module mod_limitipconn.c, which allows web server administrators to limit the number of simultaneous downloads permitted from a single IP address.
yoya@awm.jp% cd ~/diary/namazu2 yoya@awm.jp% rm index/* yoya@awm.jp% cd ../bin yoya@awm.jp% ./hns-index2検索エンジンで当日記に辿り着いた場合に、全文検索のページに redirect させる為に ~/public_html/diary/config.ph の設定を変更しました。
# IntelliSearch, redirecting Namazu search #$IntelliSearch = 0; # 1 -> on, 0 -> off (default) $IntelliSearch = 1; # 1 -> on, 0 -> off (default)
mkdir jalopy-1.0b10 ; cd jalopy-1.0b10 unzip ../jalopy-1.0b10.zip cp lib/jalopy-1.0b10.jar ~/lib/java/.
java samples.userguide.example3.Client -s axis/services/MyService こんにちは MyService こんにちは You typed : こんにちはAxis 1.0 では -s でサービス名を明示的に指定する必要があるそうです。
HD 品質と5.1chサラウンドに対応した動画のストリーミング配信が可能で、 PCによるホームシアターを実現できる
IEEE 802.11gはまだ普及しない <略> IEEE 802.11gは未だドラフト仕様のままで、 来年5月にシンガポールで開催予定のIEEE 802臨時会合まで 正式版仕様とはならない(万一、土壇場で揉めるようなことになると、 7月の本会議まで延期される可能性もあるという)。 無線LANチップベンダーはドラフト仕様のままで製品化を進め、 6月までには正式版に対応したファームウェアを配布することで IEEE 802.11gに正式対応しようと考えている。悩ましいところですが。自分は
rdr pppoe0 0.0.0.0/0 port 7144 -> 192.168.1.7 port 7144 rdr pppoe0 0.0.0.0/0 port 7145 -> 192.168.1.7 port 7145ipnat にこの設定データを渡してみます。
bash-2.05# ipnat -f /etc/ipnat.conf 4:ioctl(SIOCADNAT): File exists 5:ioctl(SIOCADNAT): File existsSIOCADNAT は、既に存在する NAT の設定です。
7144番に Servents/Data の許可を与え、 HTML/Broadcasting の許可は7145番に与えるように設定します。 そしてルータやファイアウォールには、 外部からの接続を7144番に対してだけ許可するよう設定します。余計な事をしていたようです。 ipnat の設定から 7145 を外した後、 コマンドラインから手動でエントリを消去しました。
# ipnat -r -f - rdr pppoe0 0.0.0.0/0 port 7145 -> 192.168.1.7 port 7145 tcp ^d
ビデオ出力機能の追加に伴って、 MPEG-1/2のハードウェアデコード機能も付加されており、 ハードウェアデコードしたMPEG画像をそのままビデオ出力することができる。
日本語版のダウンロードの手引きは現在準備中です。 現在のところ英語版のガイドのみご覧いただけます。ドキュメント無しでソフトウェアをリリースするのは、さすがです。
STOP: c000026e Unknown Hard Error Unknown Hard Errorsafe mode や、正常起動時の profile 等を利用しても、症状は変わりません。
Setup is loading files (Qlogic QLA1080, 64bi bit PCI LVD SCSI HBA)...上記の文が表示されたまま、次に進みません。
インストール 復元の2択を迫られたので、ダメもとで復元を選び処理を任せたところ、 起動に成功し、logon して普通にツールを動かせるようになりました。
# apt-get update 取得:1 http://updates.vinelinux.org 2.6/i386/base/pkglist.updates [72.1kB] <略> 取得完了: 89.4kB を 3s (24.9kB/秒) ファイル依存を処理しています... 完了 パッケージリストを読みこんでいます... エラー! E: このシステムには 2 つ以上のバージョンのパッケージ 'j2sdk' がインストール されています。この状態のままでは APT は正常に動作することはできません。 以下のどちらかを選択して実行してください。 1) 古い方のパッケージを削除して、1 つのバージョンだけがインストール されている状態にしてください。又は、 2) このパッケージの複数のバージョンを共存させておきたい場合は、 このパッケージ名を 'RPM::AllowedDupPkgs' オプションに追加してください。 オプションは '/etc/apt/apt.conf' に書きます。分からない場合は、 1) の選択肢を選ばれることをお勧めします。事情があり、jdk1.3 と 1.4 をインストールして環境変数で使い分けていました。
// AllowedDupPkgs {"^kernel$"; "^kernel24$"; "kernel-smp"; "kernel24-smp"; \ "kernel-enterprise"; "kernel-BOOT"; "kernel24-BOOT"; "^kernel22$"; \ "^kernel22-smp\"; "^mol-kmods$"; "^mol-kmods22$"; }; // modified by yoya // 2002/12/23 "^j2sdk" AllowedDupPkgs {"^kernel$"; "^kernel24$"; "kernel-smp"; "kernel24-smp"; "kernel-enterprise"; "kernel-BOOT"; "kernel24-BOOT"; "^kernel22$"; "^kernel22-smp"; "^mol-kmods$"; "^mol-kmods22$"; "^j2sdk"; };以上のように /etc/apt/apt.conf を書き換えて、 apt-get update & apt-get upgrade を実行しました。
# apt-get upgrade パッケージリストを読みこんでいます... 完了 依存情報ツリーを作成しています... 完了 以下のパッケージがアップグレードされます: w3m 1 個のアップグレードパッケージ, 0 個の新規パッケージ, 0 個の削除/リプレース パッケージ, 0 個の保留パッケージがあります。 取得パッケージ: 481kB のアーカイブを取得します。インストール後は 457B が 使用されます。 続行しますか? [Y/n]Y 取得:1 http://www.t.ring.gr.jp 2.6/i386/updates w3m 0.3.2.2-0vl0.26 [481kB] 取得完了: 481kB を 0s (703kB/秒) RPM コマンドを実行しています (-U)... w3m ##################################################
# /sbin/hdparm -i /dev/hda /dev/hda: Model=FUJITSU MPG3409AT E, FwRev=82B9, SerialNo=VH06T150CKP4 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4 BuffType=DualPortCache, BuffSize=2048kB, MaxMultSect=16, MultSect=16 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=80063424 IORDY=yes, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5 AdvancedPM=yes: disabled (255) WriteCache=enabled Drive Supports : ATA/ATAPI-5 T13 1321D revision 1 : ATA-1 ATA-2 ATA-3 ATA-4 ATA-5ATA(100)で動いてるようです。
太田裁判長は、一昨年12月に同研究所の社員が 近くのJR高槻駅で放射性同位元素の液体をまいた事件や、 昨年6月に同研究所の排水から発がん性の疑いのある物質 (1、2―ジクロロエタン)が下水道法の排水基準の 2倍以上検出されたことを指摘。 「研究所の事業は人の生命や身体、健康を害する現実的な可能性がある」 と判断した。さすが JT 様です。
※このハガキは、ご入会いただいてから BIGLOBE サービスのご利用 実績のないお客様へ送付されていただいております。 既にご利用されている場合には、本書の到着についてご容赦下さい。なるほど。(^^;
経済産業省では、情報システム厚生課の無線LANの電波が、 外部から受信できる状況だった。パソコンに、 「ハリー・ポッター」などの映画やドラマ、アイドルのビデオなど 多くの不正コピーソフトが蓄積されていた。やはり、セキュリティーが甘いとこういう部分もチェックされるのですね。 他山の石とする事にします。
Vector stringVector = new Vector(); stringVector.add("hoge"); stringVector.add(new Integer(1)); String s = (String) stringVector.get(0); String s1 = (String) stringVector.get(0); // runtime error!!JDK1.5 以降 # 型に対して安全なスマートなコード
Vector<String> stringVector = new Vector<String>(); stringVector.add("hoge"); stringVector.add(new Integer(1)); // compile error!! String s = stringVector.get(0);今までわざわざ型毎に StringVector 等のクラスを自作していましたが、 これで楽が出来るかもしれません。 なるほど。これですか…
37m 付近でも変わらず 4Mbps オーバーを記録するのは, アイ・オー・データ機器,アクトンテクノロジィ,アドテック, プラネックスコミュニケーションズの4製品で, これらは無線LANカードによる差もあまり生じていない。と説明されていましたので、この中で、 「WAN 側 100MBps 対応 & 長距離通信」という条件に合う アドテック ADLINK340AP を最有力候補にしました。
「藤島助役は、「公務で忙しい」(市秘書課)として取材に応じなかった」 というのは、現実に15年度予算の審議をしている真っ最中に予約もなく 取材申し入れをして直ちにコメントをよこせという方がおかしいのではないのか? その日も午前中であれば時間はあったのに、 取材をしたいという話は全く聞いていなかった。「取材に応じない」って文章を読むと、ついやましい事があるのではと 勘ぐってしまいますが、こういう事情もあるのですね。
語尾は「じゃん」より、「べや」とか「だべ」を使うほうが多い。これは、関西出身者に指摘されて始めて気付きました。
自分の死後残されるペットの行く末を心配する飼い主が増えている。 高齢化でペットとだけ暮らすお年寄りも多く、猫を終身で預かる施設も登場した。これのハードディスク版を作るのはどうでしょう。
cvs -d :pserver:anoncvs@sup.jp.netbsd.org:/cvs/cvsroot login <パスワード> cvs -d :pserver:anoncvs@sup.jp.netbsd.org:/cvs/cvsroot co -r netbsd-1-6 pkgsrc以上のコマンドで反応なしでした。 まだ、ネットワークの設定に問題があるのかもしれません。
pkg_add ftp://ftp.jp.netbsd.org/pub/NetBSD/packages/1.6/i386/All/〜
sh bktr2jpeg.cのように実行すればコンパイルが始まります。
#if 0 set -x cc -Wall -O2 -I/usr/local/include -L/usr/local/lib -o bktr2jpeg \ bktr2jpeg.c -ljpeg exit #endifキャプチャマシンは、NetBSD 環境ですので、
#if 0 set -x gcc bktrd.c server.c \ -I/usr/pkg/include/ -L/usr/pkg/lib -R/usr/pkg/lib -ljpeg exit #endifこのように変更しました。
#include <machine/ioctl_meteor.h> #include <machine/ioctl_bt848.h>そこで、NetBSD のヘッダーファイルを検索したところ、 このヘッダと同じような定義を持つ <dev/ic/bt8xx.h> を見付けました。
#include <dev/ic/bt8xx.h>上記のヘッダに変更したところ。無事にコンパイルが通りました。
Usage: bktr2jpeg [-f filename] [-s input] [-d device_number] [-w width] [-h height] [-q quality] [-v]自分が使っているキャプチャカードは、ビデオ入力が 2 つあって、 監視カメラ2台を各々に繋げて、両方の画像を参照しようとしてますので、
bktr2jpeg -f cap0.jpg -s 0 bktr2jpeg -f cap1.jpg -s 1のようにコマンドを実行して、0 入力と 1 入力 を取り込む事にします。
my $base_dir = "〜/htdocs"; while(1) { my ($dir_time, $file_time) = make_dir_time(time()); foreach my $input (0 .. 1) { my $dir = $base_dir . $input .'/' .$dir_time; `mkdir -p $dir`; `bktr2jpeg -f $dir/$file_time -s $input`; } }make_dir_time は、
sub make_dir_time($) { my $time = shift; my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($time); $year += 1900; $mon += 1; my $dir = sprintf "%04d/%02d/%02d/%02d/%02d", $year, $mon, $mday, $hour, $min; my $file = sprintf "%02d.jpg", $sec; return ($dir, $file); }これで、時系列でディレクトリに分別されて保存されます。
my $time = time(); my $before; for($before=0; $before<20; $before++) { my $base_dir = '/home/yoya/public_html/cap' . $input; if (-f join('/', make_dir_time($time - $before))) { last ; } } my ($dir_time, $file_time) = make_dir_time(time() - $before); <$dir_time と $file_time を元に、img src のリンク先を決定>要するに、現在の時間から 20 秒まで遡って最新の画像を調べる処理です。 あとは対応する画像を img src で張りつけて、ヘッダの所に
<META HTTP-Equiv=refresh CONTENT=1; URL=".">の一行を挿入して、それらしいページが完成しました。
./configure --libdir=/usr/pkg/lib --includedir=/usr/pkg/include \ --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib \ --with-sdl-prefix=/usr/pkg make CC="gcc -I/usr/pkg/include"としましたが、oss が入ってない為に一部コンパイルが通りませんでした。 NetBSD pkg にも入っていたました。 そのうち、X Window の設定をする暇があれば試そうと思います。
$SIG{'CHLD'} = sub { wait; }; # no more zombie魔法の呪文を一行追加。:)
$SIG{'CHLD'} = sub { while(wait3() > 0) { } };にするべきですね…
bash-2.05$ uptime 6:55AM up 1 day, 11:21, 1 user, load averages: 6.42, 6.18, 6.02という状況では、バックアップ作業さえキャプチャーに悪影響を及ぼします。
親に先立ち子プロセスが死んだ場合は、子プロセスは水子(ゾンビ)として 自縛霊のようにプロセステーブルを占有して、親に (wait という) お経を唱えてもらうまで成仏できません。お経 (wait) を忘れて、短命な子プロセスを生成し続ける無責任な親がいると、 プロセステーブルがゾンビで溢れて新たなプロセスが生成できなくなり、 (一般ユーザでは)ログインさえ出来なくなります。
$SIG{'CHLD'} = sub { wait(); };といったコードを追加していますが、 それだけでは問題が生じる事があります。なぜなら、
このようにすれば、$SIG{'CHLD'} = sub { while(wait3() > 0) { } };use POSIX ":sys_wait_h"; $SIG{'CHLD'} = sub { shift; while(waitpid(-1,&WNOHANG)> 0) { } };
POSIX では SIG_IGN に SIGCLD をセットした時の振舞いは規定されていないので、 POSIX 系をサポー トするようなプログラムには使うことができません。とありますので、今のところ、SIGCHLD でSIG_IGN を利用せず、 自前でハンドラを用意する事にしています。
signal(SIGPIPE, SIG_IGN);デバッグをしていて気付いたのですが、 gdb でプロセスを動かすと、ハンドラに飛ばずにプロセスがいきなり 終了してしまいます。これは gdb の仕様なのでしょうか…
extern int server_open(int port); #define BASE_PORT 8480 int max_sockfd = -1; for (i=0; i<n_input; i++ ) { sockfds[i] = server_open(BASE_PORT + inputs[i]); if (max_sockfd < sockfds[i]) max_sockfd = sockfds[i]; }
extern int server_accept(int sockfd); extern int server_file2net(int sockfd, char *filename); while(keep_running) { fd_set readfds; int n; # read enable 監視対象の fd を決める FD_ZERO(&readfds); for(i=0; i<n_input; i++) { FD_SET(sockfds[i], &readfds); } # 上記で設定した fd のいずれかが read enable になるまで待つ n = select(max_sockfd + 1, &readfds, NULL, NULL, &timeout); if (n < 0) { perror("seleect failed"); return EXIT_FAILURE; } if (n == 0) { printf("may be timeout\n"); } # 実際に read enable の fd を調べる for(i=0; i<n_input; i++) { if (FD_ISSET(sockfds[i], &readfds)) { int cfd; # accept して接続を確立する cfd = server_accept(sockfds[i]); <キャプチャ処理& jpeg 圧縮> # jpeg データをクライアントに送信 server_file2net(cfd, jpeg_filename); close(cfd); } } }このようなコードを追加しました。
failure while saving jpeg rename: No such file or directoryのエラーが発生する現象に見舞われました。
bktrclient <サーバ名> <ビデオ入力番号> <出力ファイル名>コードのイメージを以下に示します。
int input, port; int sockfd; char *server_name; server_name = argv[1]; input = atoi(argv[2]); filename = argv[3]; sockfd = client_open(server_name, port); client_net2file(sockfd, filename); close(sockfd);
my $base_dir = "〜/htdocs"; my %old_dir; while(1) { my ($dir_time, $file_time) = make_dir_time(time()); foreach my $input (0 .. 1) { my $dir = $base_dir . $input .'/' .$dir_time; `mkdir -p $dir`; `bktrclient -f $dir/$file_time -s $input`; # 次のディレクトリに処理が移った時、 # 前のディレクトリで mkthum の処理を行う。 if (exists($old_dir{$input})) { if ($old_dir{$input} ne $dir) { my $pid = fork(); ## be careful !! if ($pid == 0) { `cd $old_dir{$input} ; mkthum.pl -l 6 -r 10`; exit 0; } $old_dir{$input} = $dir; } } else { $old_dir{$input} = $dir; } } sleep(1); }
use Time::HiRes; my $start_time = Time::HiRes::time; my $time_index = 0; while(1) { <処理> $time_index++; my $diff_time = Time::HiRes::time - $start_time; my $wait_time = $time_index - $diff_time; if ($wait_time > 0) { select(undef, undef, undef, $wait_time); } }これで、一秒置きに処理してくれる…はずでしたが、 一秒+αの間隔で処理しています。