2002年11月22日(Fri) 今日は冬風の雲 でも雪ではないよ
● ソースアンテナ
● suしても使えるscreen
Steven Elliottさんのshellの suidを見て起動するようになるパッチ。いいかも。 例によって試してないんだけど…。 でもなんとなくセキュリティホールになりそうな気がしないでもないような気がしないこともない。
● 今日のがらくた
雨が降ってきた上にまたつながらなくなってるなぁ…。
sshdが起動して、キーボードとモニタが不要なところまで辿りつきました。 openssh-serverがCDのイメージには入っていなかったので、これを作るために、
- OmoiKondara HOWTOを見ながら、OmoiKondaraの準備。
- opensslを作りopenssl-develをインストール
- tcp_wrappersを作りインストール
- zlibを作り、zlib-develをインストール
- opensshを作り、openssh-serverをインストール
という手順を踏みました。 opensshでは、X関係のパッケージへの依存をとりあえずやめてもらうため、
したのですが、何故か、
と表示されてOmoiKondaraが終了してしまう。仕方がないので、
してからできたパッケージをパッケージ置き場に移して、
openssh-serverインストールしました。
起動は、/etc/init.d/sshd start
でおっけい。
詳細は、がらくた日誌に。
これで、リモートからいろいろできるようになりました。とりあえずは本職…。
● はてなアンテナには何も見せないuptime.rb
何人かの方のはてなアンテナに入れていただいているのですが、 はてなアンテナがクロールする度に、 uptimeの変化が検出されてしまうみたいでした。 そういうわけで、しばらくの間、 uptime.rbがユーザーエージェントを出力するようにしていたのですが、 さきほど、
であることが判明*1。 そういうわけで、はてなアンテナからのアクセスの場合は、 uptimeを出力しないようにしてみました。うまくいってるかな?
*1 ここのホストのアクセスログにはユーザーエージェントは記録されないのです。
● gcc3.2ができないのはbisonが無いからだった
と言われるのですが、Makefileを見ると、最初のfalse
という
部分には、$BISON
という文字が。
bisonを入れてから、今のところ健やかにビルド中です。
そんなわけで勝手ながら、momongaのpackages.develにbisonを追加しちゃいました。 テストはしてません←コラ。 packagesにopenssh-serverも入れちまいました。 不都合があれば消してくださいまし。
gcc.specでもbisonをrequireするべきなのかな? それともホントはbisonが無い時の回避策があるのか… パーサーの理解が乏しいわたくし。
● その後の設定
iptablesとか要らないサービスのchkconfig --del
とか、momongaさんの.bashrcを作ったり。pdumpfsとかrsyncとかを作って、cron.dailyにスクリプトを追加。sudoの設定をしたりccacheも作ってから、とりあえずはheadのcheckoutとビルドを始めました。週末を越えてどれだけできてるか楽しみだ。
そうそう、momongaのパッケージリストにbisonを足したのはちょっとやりすぎだったと反省。コンパイラが入ってれば作れる。
2004年11月22日(Mon) 今日は暴風雨のはずだったのに
● ミラーするのは来週です
職場の内部のWWWサーバーの内容を、外部でも見られるアクセス制限付きのWWWサーバーにミラーすることを思いついた。CGIが動かないので例えばBitChannelサイトにかきこめないなどの不具合はあるけれど、出先からちょちょいと情報を確認するのには便利なはず。
問題は、こういうアイディアを思いつくのは週末が多くて、ミラー作業も週末の負荷が少なさそうな時間にやる、ってことだ。今度の週末が明けないとちゃんと実装できたかわからない。
パスフレーズなしのSSHを通して全文検索用につくったミラーをrsyncしてるだけだけどさ。
● 僕がRSSを扱うサイトを作るとしたら著者の著作権を尊重したい
以前bluknews.netのtdiary2rss.cgiにはcontent:encodedが含まれていると書いた時の驚きをもう少し詳しくまとめます。otsuneさんやふしはらかんさんから反応をいただいたおかげで、僕の考えとみなさんの考えのどこが似ていてどこが似ていないのか、少し理解できたような気がします。(「嬲りリンク騒動」というのは僕は全く知らないです。ごめんなさい。)
まず、otsuneさんは、「勝手RSSは同一性の保持は満たしているし」と書かれていて、著作物の同一性が保たれていれば著作権を侵害していない、と考えておられるのだと思うのですが、僕は下に書くように、(1)同一性が保たれていても複製権を侵害していると感じます。これはみなさんと僕とで考えが大きく違う部分です。
また、otsuneさんの書いておられるように、(2)著者は著者として自分の著作権の侵害に抵抗するべきだと思うし、一方、(3)ソフトウェアを作る身としては、便利なら何でも許される、とは思わずに、他の人の権利を侵害しないように気をつけたいと思っています。この2つの項目についても下に詳しく書きます。
上の(1)と(3)と、bulknewsの運用のされ方が大きく違うので、僕は驚いたのだと思います。
なお、むとうさんにもこの問題に反応していただいてます。感謝。僕も、makerss.rbを改造していて、RSSの仕様として著作権がRSS全体についてしか記述できないこと、内容のライセンスを記述する方法がないのはおかしいと思いました。もし見つけた方がいらっしゃいましたら教えてもらえるとうれしいです。
● 僕の個人的な立場
僕がzunda名でインターネット上でやっている活動は、このサイトを公開する以外に、tDiaryのプラグインやちょっとしたプログラムを公開したり、Momonga Projectでフリー(自由)ソフトウェアをRPMパッケージとして配布していたりします*1。
このサイトについては、「このサイトについて」に書いてあるように、みなさんが複製をして公開していただけるようにお願いしています。
一方、Momonga ProjectでRPMパッケージをつくる際には、再配布することになるプログラムやデータが、著者の著作権を侵害しないように細心の注意をはらっているつもりです。どんなに便利なプログラムでも、著者が再配布を許していると明示的に書かれていないものは、パッケージしません。
下記の議論は僕のこういう経験から感じていることがらを書いたもので、これが絶対に正しいと主張するつもりはありません。間違えている箇所があれば、どんどん指摘していただきたいです。(僕が忙しくなりすぎてしまうと、指摘していただいても反応できないかもしれませんが。その場合にはおわびします。)
*1 と胸をはって書けるほどMomongaに貢献できていないのです。すみません。
● 記事の全文をコピーして掲載しているサイトは原則的には著作権を侵害している
例えば日本の著作権法には、著作者は、その著作物を複製する権利を専有すると規定されています。私的使用を目的とする場合以外には、複製権者の許諾を得る必要があります。
僕は、例えば、WWW上に公開されているデータの形式を変換して公開しているサイトは、複製権者の許可を得ない限り、変換元のデータの複製権者(ほとんどの場合は著者ですよね)の権利を侵害していると思っています。データの形式の変換は複製にあたるし、それを公開する、ということは私的使用以外の目的で変換結果を利用していると思えるからです。なお、日本では、WWWサイトを見るために、ネットワークの経路上の計算機にデータが蓄えられた状態のものは複製とは言わない、という判例があったのではないかと思います*1。
サイトによってはCreative CommonsライセンスやGFDLなどのライセンスを明示している場合もあります。著者はライセンスを明らかにすることによって、複製権を閲覧者に許諾したり、同一性保持権を放棄したりしているのではないでしょうか?逆に、ライセンスを提示することで、例えばディープリンク禁止などといった、著作権法で規定されているよりも厳しい制限を閲覧者に課している場合もあります。この場合に、ライセンスによる制限が有効なのか、あるいは、著者には著作権法で規定されている権利しかないのか、は、最終的には裁判所が決めることなのだろうと思います。さらに、Google、はてな、i-know.jpなどのサイトでは、ロボットからのアクセスを拒否する方法を明らかにすることで、逆に、ロボットを拒否していない場合には著作権者がこのようなサイトに複製を許諾した、とみなしているのだろうと思っています。
というわけで、僕には、bluknewsのサービスは原則的には第三者の著作権のうち、複製権を占有する権利を侵害している、と感じられます。(もちろん、僕が著作権を侵害しているなあ、と感じてしまうサイトはこれだけではありませんが、今回は話の発端がbluknewsだったので、こう書かせてもらいます。すみません。)
*1 根拠になる記事が思い出せませんが…。
● 著者は自分の著作権を守るためになにをできるか
僕もotsuneさんと同じく、「知識が無い人も簡単にアクセス制御がコントロールできる世界のほうが素晴らしい」と思います。
otsuneさんには、『大半の人はアクセス制御の知識が無い」ことを理由に、気に食わないアクセスをdenyする手法を否定され』た、と誤解されてしまいましたが、僕が書いていたのはサービスを提供する場合のはなしで、著者がアクセス制御をするべきではない、という意図はありませんでした。わかりにくくてすみません。
● もし自分が変換サービスを提供する側になったら何をしたいか
現在の日本の著作権法では、上に書いたような権利が著作権者に認められているし、ベルヌ条約を批准している国の著作権法でも、似たような権利が認められていると想像しています(これについては根拠はありません。間違っていたらすみません。)。ならば、自分が書くソフトウェアは面倒くさくても著作権を侵害しないようしたいです。ふしはらかんさんは、「善意の人(bulknews等)が遠慮を」する(otsuneさん)のは「非常に面倒くさい、というか技術的にやる気を起こさないネタではあると思う。」と書いておられますが、残念ながら僕はこの考え方には賛成できません。
もっと一般的に書いてしまうと、法治国家にいる以上、法律は守るように努力するべきです。法律がまちがっていると思えば、法律が変わるように努力するべきだと思います。(とか書いてるけど、自分でどれだけのことができているかと思えば、ぜんぜんです。えらそうですみません。でも理想論として書かせてください。)
● そういうわけでwwwに作文を書いたりしながらレポートを書いてるわけですが。やっぱり電卓欲しいなぁ…。フレキシブルケーブルの修理ってきるのかなぁ…。
● ジョギング普通コース
水を飲んでいくのを忘れた。水不足だと体が暖まるのが遅いみたい。昨日買った長い靴下は足先を熱くするけれど、足首などの痛みは少ないかもしれない。
運動した方が調子がいいなんて、難儀な体になったもんだ。わはは。
● [tla] GNU archではtagをうつにはbranchが必要
info archのSymbolic Tagsの項。CVSで言うタグを打つには、そのためのブランチを作っておいて、trunk(mainline)からそのブランチへタグを打つ。commitしているブランチにtagを混ぜるとあまりよくないらしい。
うーむ。ブランチとタグの違いをちゃんと理解しないといけないっす。
● 久しぶりにドイツに電話をかけると呼出し音が話し中の音に聞こえる(と妻が言っていた)。わはは。
● [tla] GNU archのhook
Multi-tree Projects and Configuration Managementは理解しないまま読み飛ばした。必要になったら読みなおそう。Revision Libraryも必要になる場面を思いつけない。
次はDriving Process Automation with arch Hooks。commitしたり他の操作をした場合に実行するコマンドは、~/.arch-params/hook に書いておけるのだそうだ。レポジトリじゃなくてアーカイブがsftpのあちら側にある場合には、アーカイブのあちら側に置いとくのかな?アーカイブがgroup writableになっていて、それぞれの開発者が別のユーザーとしてcommitした場合にはどうなるのだろう?試してみないとな。
2005年11月22日(Tue) 38.5℃
● 体温計の電池が切れたのをいいことに出勤。いや、体温も下がったような気がするんですけどね。
● 「碇」が読めません
IMEパッドにご登場願ってしまいました。「いかり」だそうです。「錨」なら読めたと思うんだけどな。
2006年11月22日(Wed) どんより寒い空
● 冬だなあ、と感じながら半袖半ズボンで仕事に向かう。
● ファイルのロックの続き
LOCK_UNするのはいつ?という疑問に okujiさんが応えてくださった。いつもあ りがとうございます。
確かにシステムコールとstdioを混ぜて使うのは危険ですよね。fで始 まるので気づきませんでした。迂闊すぎ。fopen(3)に対して open(2)、flock(3)に対して、lock(2)…ではなくflock(2)なのですね。
Linux Programmer's Manual (11 December 1998) より、
- 名前
- flock - オープンされたファイルにロックの適用、解除を行なう
- 書式
- #include
int flock(int fd, int operation);- 説明
- オープンされたファイルにアドバイザリ・ロック(advisory lock)の 適用または解除を行う。
で、flockfile(3)ですが、どうも同じプロセス内の他のスレッドに対 するロックのようでした。Linux Programmer's Manual (2001-10-18)よ り、
- 名前
- flockfile, ftrylockfile, funlockfile - 標準入出力 FILE のロックを行う
- 書式
- #include
void flockfile(FILE *filehandle);
int ftrylockfile(FILE *filehandle);
void funlockfile(FILE *filehandle);
- 説明
- …ライブラリの呼び出しが行われる毎に、標準入出力関数は FILE オブジェクトが他のスレッドによってロックされ ていない状態になるま で待ち、FILE オブジェクトをロックし、要求されて入出力を行い、オブ ジェクトのロックを解除する。
(注: このロックは、 flock(2) や lockf(3) といった関数が行うロック とは全く無関係である。)
他のプロセスに対してもロックするのは lockf(3)なのかな?Linux Programmer's Manual (2002-04-22)より、
- 名前
- lockf - 開いているファイルに対して POSIX ロックを適用・テスト・解除する。
- 書式
- #include
int lockf(int fd, int cmd, off_t len);- 説明
- … Linux では、この関数は単に fcntl(2) へのインターフェースである。
さて。advisort lockとPOSIX lockとの関係は…lockf(3)のman ペー
ジに記載されていた、
…flock() and fcntl() locks oblivious to each other. Both can exists, and neither will have any effect on the other.
というわけで、Linux の場合はflock(2)とlockf(3)は互いにもう一方 がロックをかけてるのを知らない、ということになりそうです。
あれ。flock(2)もlockf(3)も、FILE *filehandleではなくint fdを引 数に取る。ということはstdioでプロセスをまたぐロックをするときはシ ステムコール(というか、えーと、stdioより低いレイヤーのストリーム )を混ぜるしかないのかな…。
混沌のまま事情を説明すると、RubyでFile#closeする前に File#flock(LOCK_UN)するのが安全かどうかを調べたかったのです。 どうも実装を見てみないといけないような気がしてきました。いつ〜
● @ITにMomongaのメンバーへのインタビューが載っている。なんとなくこそばゆい感じ。僕は最近はぜんぜんcommitできていないけれど。
● 七面鳥の英語名はトルコの国名に由来するのだそうだ。
● 内職できる機会があったので、ひたすらメールの処理を続けていた。537通あった未処理のメールが179通まで減った。358通以上のメールを読んだ計算になる。すげー…処理漏れがありそうで怖いけど。
● [run] 探検+坂コース 38分06秒
着替えて外を見ると雨が降っていたので一仕事して出直した。暗くなるまで時間がないので急な坂を含んだコースをでっちあげた。まず行ったことがなかった行き止まりの道二本を行き止まりまで往復してみてから坂の下の大学までぐるーっと回って行き、橋から急坂の道を二往復した。
1マイルあたり8.3分かかったとすると4.6マイルの走行。
● RubyのFile#flockはfflush(3)してくれる
manページをめくってみると、Cレベルではstdio.hのストリームをロックするには低位のレベルのロックを使うしかなさそう ということはわかりました。では元に戻ってRubyではどうしているか。 ソースを見てみると、flock(2)を呼ぶまえに、fflush(3)しているようで した。
ruby-1.8.5.tar.gzのfile.cを見てみました。
#ifdef
がいくつかあって(Cの)マクロ定義がどうなって
いるのか調べるのが面倒だったので、
した結果とつきあわせてfile.cから
ruby 1.8.5 (2006-08-25) [i686-linux]
のFile#flockの定
義を抜き出したのが下記です。
実はここに現れるflock()は、flock(2)そのものではなくて直前で rb_thread_flock()として定義されているflock(2)のラッパーなのですが、 今はRubyのスレッドのことは考えていないので、無視していい。よね? よね?
というわけで、RubyのFile#flockは、ストリームが書きこみ可能で開 かれている場合には、flock(2)を呼ぶ前に、fflush(3)を呼んでいるらし い、ということがわかりました。
2009年11月22日(Sun) 暑いので車の窓を開けておいたら雨が入ってきた
● [memo] 家PCをデュアルヘッドにしてみる
PCをテレビで観たいプロジェクト。これまで家PCにはDVI-Iを通して液晶ディスプレイをつないでいた。このPCにはアナログ出力が余っているので、NTSCに変換してテレビに出力できないか試してみる。
まずはDVI-Iに加えてVGA(15ピンD-Subのアナログ)を液晶ディスプレイにつないでみた。このままではディスプレイのアナログ側には信号は来ていなかった。これでXを再起動すると、デジタル側とアナログ側が同じ内容になり、xfceのデスクトップの絵が変化した、つまりウインドウマネージャから見てもディスプレイの設定が変更になった、ことが確認できた。
さて、次はデュアルヘッド。このPCが使ってるのは…よくわからない。マザーボードの型名ASUS M3A78-CMから調べていくと、オンボードのビデオチップセットはATI Radeon 3100とのこと。lsmodするとradeonというモジュールが見えるので、Xはこのドライバを使ってはいるのだろう。/etc/X11/xorg.confを新規に作り、man radeonを参考に下記を書いてXを再起動してみた。
再起動後もディスプレイやxfceの壁紙の様子に変化はなかった。
このドライバはxrandrに対応しているようなので、あとは nVidiaのマシンの時と同様に進んでみる。 /var/log/xorg.0.logを見ると、出力コネクタの「XRANDR name」は それぞれVGA-0とDVI-0のようだ。 以前と同じく、DeviceセクションのOptionで対応づけを書いてみよう。 テレビが左側にあるのでアナログが左側になってほしい。
OK。期待どおり、アナログ出力側が左になっている。 物理的にはディスプレイは1枚しかないので同時には見られないけれど。 次にメインのディスプレイを右側のデジタルのものにしたい。 xfceのパネルは設定マネージャからパネルの設定で、 位置を「自由に移動可能(M)」にしてモニタを選択した。 gdmは… どうしても左のディスプレイにユーザー名の入力を促すウインドウが表示されてしまう。
今日はここで時間切れ。デジタルを左側にしておこう。
それぞれのディスプレイのピクセル数も適当に設定しておいた。
● ふと思い付いてテレビの後側を見ると、コンポーネント入力とHDMI入力があった。
2010年11月22日(Mon) 今日も眠いよー
● [Android] HBOOTのバージョンを確認する
Nexus Oneにファームウェアの更新が来たとかで期待していたら、手元にも来てた。せっかくだからと思ってUSB Debugをつなぎスクリーンショットを取りながら指示通りリブートしたところ、Log catにパッケージが更新できなかったなどというメッセージが残っているのに気づいた(が、メモを取ろうとしつつシゴトをしている間に流れてしまった)。
心配になったので、最初に更新されるというHBOOTのバージョンを調べてみることにした。見ようみまねでNexus Oneの電源を切り、音量を下げるボタンを押しながら電源ボタンを押すとboot loaderのメニューが表示されたようだ。そこあったのは「HBOOT - 0.33.0012」。ここから音量ボタンでFASTBOOT、REBOOTと辿り、普段通りに起動させられた。
さて…HBOOTというのは何だろう?Androidcentralを読んでもよくわからない。initスクリプトのようなもの?BIOSのようなもの?とにかく、コムギドットネットさんによると更新後のHbootのバージョンは0.35.0017の模様。がーん。またの機会を待つしかないかな。
2014年11月22日(Sat) 回線ないとなにもできない
● 朝からT-Mobileからのローミングがつながらなくて無力…と思ってたら夕方つながってるのに気づいた。
● HND-HNL B777-200
「青空キッチン」島らっきょうの浅漬け(石垣塩)とサッポロビール
「JAL TV」松江のしじみ丼
「Guardians of the Galaxy」あはは複雑なこたわからないけどおもろいな
> ずんだあん [OmoiKondaraの-rオプションの中に-baを書かないといけないんですね。]
> タロウ [すみません、出来心ではてなアンテナに登録して、なにやら面倒をおかけしたようで。]
> ずんだあん [いえいえぜんぜ〜ん。 はてなアンテナの詳細モードってなかなかいいんだけど、uptimeの変化だけ毎回見せられるっての..]