2007年02月19日

PPMのワナ(Perl 5.8)

久々にperlを新しくしてPPMを使おうとしたところ、407(Proxy Authentication Required)が返ってくる。
会社の環境はユーザ認証が必要だけど、今まで環境変数HTTP_proxy_userとHTTP_proxy_passでどうにかなってたのに。
調べてみたところ、5.8以降のPPMは環境変数の指定方法が変わっている。
activestate.comによると、環境変数HTTP_proxyに全部指定しろということらしい。


5.6まで:
HTTP_proxy=http://hostname:port
HTTP_proxy_user=username
HTTP_proxy_pass=password

5.8以降:
HTTP_proxy=http://username:password@hostname:port
意味のない仕様変更のおかげですっかり時間をとられてしまった。やれやれ。

人気blogランキング



posted by まる at 22:48| Comment(0) | TrackBack(0) | プログラマ Chips | このブログの読者になる | 更新情報をチェックする

2006年12月17日

Winnyの判決

Winny裁判の京都地裁の判決がでました。罰金150万円だそうで。
技術屋として今回のWinny事件には注目していましたので、自分の中でまとまってない情報を整理してみます。
ネタ元は朝日新聞の判決要旨と、壇弁護士の事務室にある弁論要旨から。


■公訴事実
検察の公訴事実の要約。
「Winnyが公衆送信権を侵害していること広く利用されていることを認識・許容しながら、ホームページ等で公開して誰でも入手できる状態にすることで、公衆送信権を侵害した正犯者の犯行を幇助した」


■論点
弁論要旨から引っ張ってみた。

・被告人に幇助犯成立の余地はないこと
・被告人は著作権侵害を助長する行為をしていないこと
・具体的犯行と因果性の欠如
・故意の不存在
・被告人のWinny開発目的
・Winnyは価値中立的なソフトウェアに過ぎないこと
・(おまけ)2ちゃんねるの書き込みが証拠たりえるか


■判決
判決要旨から。

×被告人に幇助犯成立の余地はないこと
×被告人は著作権侵害を助長する行為をしていないこと
・幇助行為として違法性を有するかどうかは、社会における利用状況や認識、提供する際の主観的態様による。
・Winnyが著作権侵害をしても安全なソフトとして取りざたされ、著作権を侵害する態様で広く利用されている現状を十分認識しながら開発を続けた。
 捜査段階における供述や姉とのメールの内容、公開状況が判断の根拠。
・正犯者がWinnyを匿名性に優れたファイル共有ソフトであると認識したことを一つの契機とし、公衆送信権侵害に及んだことは認められる。

×具体的犯行と因果性の欠如
・Winnyの機能として匿名性があることで精神的にも著作権侵害を容易ならしめた客観的側面はある。

×故意の不存在
・社会に生じる弊害を十分知りながら、自己の欲するまま行為に及んでいる。

△被告人のWinny開発目的
・違法ファイルのやりとりに使われていることを知りながら開発・公開している。
・Winnyの開発が公然と行えることでもないとの意識もあった。
被告は著作権侵害の状態をことさら生じさせることは企図していない
・自己のプログラマとしての新しい技術の開発という目的もあった
・被告は著作権侵害によって何らかの経済的利益を得ていない

○Winnyは価値中立的なソフトウェアに過ぎないこと
・Winnyを技術としてみると、さまざまな分野に応用可能で有意義。技術自体は価値中立的。

よって、量刑は罰金刑が適当である。


△(おまけ)2ちゃんねるの書き込みが証拠たりえるか
・弁護側も提出している発言に関しては採用
・47氏のトリップに関しては判決に言及なし
 検察が提出した2ちゃんねるの証拠は退けられた可能性が高い。ま、判決全文を読まないと判断できないけど。


■判決の感想
「自分の作ったソフトが広く社会で犯罪行為に使われていると知りながら、防止行為をしなかった」のがまずいというのが裁判官の結論。
Winnyがなかったら、公衆送信権侵害の行為をした人たちもやらなかったでしょうと。
ただし、自身が金銭的な利益を得てないし、プログラマとして新しい技術を開発したいという純粋な動機「も」あったから、懲役刑は勘弁して罰金刑とする。

妥当な判決じゃないでしょうか。 犯罪行為に使われてると知りながら、バージョンアップを繰り返しているわけで、幇助意思がなかったとは考えにくい。
一方で、技術的な興味や、自己顕示欲のために作っており、自身は公衆送信権を侵害していない。だから罪を減じてあげようと。
おまけに「被告は著作権侵害の状態をことさら生じさせることは企図していない」とまで言ってくれている。この点に関しては弁護側の主張を採用し、警察のとった調書を否定している。
個人的にはこの判決で満足して罰金を払うのが金子氏にとってベストな選択と感じるんだけど…即日控訴なんだよな。


■争点になった「幇助」
今回の裁判はWinnyの開発が公衆送信権侵害の幇助にあたるかが争点でした。この点に関して弁護側の主張は退けられてます。

「幇助」の成立要件はこんな感じ。
・正犯の実行行為を容易にするという客観的な幇助行為の存在
・正犯の実行行為を容易にするという主観的な意思(幇助意思がある)

(1)客観的な幇助行為
正犯者がWinnyを匿名性に優れたファイル共有ソフトであると認識したことを犯罪の一つの契機としている点から、裁判官は客観的な幇助行為があったと判断している。
また、Winnyが「データが流出すれば回収なども著しく困難」であり、「利用者が相当多数いること」から寄与の程度も少なくないとしている。
ま、これはしょうがないでしょう。

(2)幇助意思の有無
問題はこちら。
金子氏は違法なファイルのやりとりをしないように注意書きをしていた、つまり幇助意思がなかったと弁護側は主張している。
これに対し裁判官は「著作権を侵害する態様で広く利用されている現状を十分認識しながら認容した」「公然と行えることでもないとの意識も有していた」という2点から幇助意思があったと判断している。
また、Winny2はBBS機能が中心でファイル共有機能はメインではなかったという弁護側の主張に対しても、ファイル共有機能をWinny2でも削除していないことから幇助意思があったと判断している。
個人的には幇助意思があったと納得できます。


■判決がソフトウエア業界に与える影響の考察
今回の判決が与える影響はこんな感じかな。

・広く犯罪行為に使用されるソフトを作成すると、幇助として罰せられる可能性がある
・違法に使用されている実情を把握しながら対策しない行為は、幇助として罰せられる可能性がある
 注意書きがあったとしても、実情が黙認であれば罰せられる

犯罪行為を助長する意思を持ち、犯罪行為を助長するソフトウエアを開発した開発者が罰せられるというのは理解できる。
一部で言われている、ソフトウエア開発者を萎縮させる効果のある判決とは思えない。裁判官もその辺を意識して、「価値中立的な技術の提供が犯罪行為となりかねないような、無限定な幇助犯の成立範囲の拡大も妥当でない」と書いてる。

今回の判決で、開発者の意思が大切なことがよく分かったのが自分の最大の収穫。


FLMASKのわいせつ画像裁判といい、インターネットに関する裁判で幇助が出てくるのは2件目。急速なインターネットの発展に法整備が追いついてない現状に対し、どうにかしなきゃいけない現実を映し出してるんだろうな。

人気blogランキング

posted by まる at 12:25| Comment(0) | TrackBack(0) | 社会人 Chips | このブログの読者になる | 更新情報をチェックする

2006年12月02日

定数のチェックはちゃんとやりましょう

一ヶ月更新の予定だったのに、10月、11月は書けずに過ぎてしまった。
申し訳ないので、今月は3本をノルマにしときます。

最初は軽く定数のチェックをサボったおかげでヒドイ目にあった話。

ずっと快調に動いていたプログラムが3月に入って、突如動作を停止。
顧客「3月に入って動かなくなるって、まさか月処理を間違えてないですよね」
自分「そんなことはないですよ。これはプログラムの〜というバグだと思いますよ。」

その場を切り抜けてから、モジュールを調べてみたら、
3月を判定すべきところに「may」と書いてありましたとさ。

アルゴリズムは問題なくても、定数まで含めてちゃんとテストしなかったおかげで、顧客先でのしょうもないバグ。
テストは定数値のチェックまでやりましょう。

人気blogランキング

posted by まる at 09:49| Comment(0) | TrackBack(0) | プログラマ Chips | このブログの読者になる | 更新情報をチェックする

2006年09月19日

高レベルと低レベル

高レベル、低レベルとコンピュータ屋さんが言った場合、一般の人が使う意味と違います。

一般的な意味でも使用しますが、コンピュータ屋さんの高レベル、低レベルは、ハードウエアに対する抽象化の階層(レベル)を意味する場合が多い。BIOSなどのハードウエアべったりのものが底辺。ハードを意識して書くアセンブラ。アセンブラを抽象化したC。C以上にハードの依存性を低くしたJava、Perlなどがその上でしょうか。

言語論争の途中なんかで高レベル、低レベルと言ってるとどっちの意味でも通用する面白い文章が出てきたりします。

「Cなんてレジスタをポインタに置き換えてるだけの低レベル言語じゃないか。Javaはポインタやメモリ管理も隠蔽した高レベル言語だ」

文脈によってどっちとも取れる文ですね。
どちらの意味かは読者の良心におまかせします。

人気blogランキング

posted by まる at 00:42| Comment(0) | TrackBack(0) | プログラマ Chips | このブログの読者になる | 更新情報をチェックする

2006年08月08日

夏休み用PC

今日も今日とてお盆前のお仕事。

今の仕事は、お客さんと、実装をお願いしている会社の人に夏休みがありません。
でも、うちの会社にはしっかりと夏休みがあります。

ここで、問題になるのがお盆の連絡体制。
基本的には実装をする人には直接連絡しないように、お客さんにお願いしています。でも、不在の間に連絡したい場合もあるわけで。

で…会社で相談したら、会社のメールが読めるノートPCを夏休みに貸してくれることになりました。
これで夏休みもしっかり仕事のメールがチェックできます。
嬉しいやら悲しいやら。

まあ、以前の職場は「夏休み、なにそれ?」という状態だったので、格段の進歩です。

帰省時には自分のノートPCも持ち帰るので2台のノートを持ち歩くことに。
当初予定ではこれに1升ビンを2本持って帰る予定でした。
…えーっと…全部足すと…これだけで約10kg!
お酒だけは先に送っておいて良かったと胸をなでおろしています。

人気blogランキング

posted by まる at 02:01| Comment(0) | TrackBack(0) | おしらせ | このブログの読者になる | 更新情報をチェックする

2006年07月15日

安田生命と皇紀

中国は4000年、朝鮮は半万年だとしたら、日本の歴史はどのくらいなんだろうという会話になりました。
エライ人に尋ねたところ、「日本は皇紀なんじゃない」とお言葉をいただきました。

wikipediaの皇紀
ふむふむ。皇紀は西暦に600年足せばいいのか。だから今年は2666年っと…

皇紀と安田生命保険
安田生命保険(今の明治安田生命保険)は1970年代に個人情報管理のシステムを構築することになった。その際システムの担当者は、20数年後に生じるであろう2000年問題を予測していた。そこで、年号の下2桁をグレゴリオ暦や元号ではなく神武暦(グレゴリオ暦−40年)を使用した。そのことにより、安田生命保険は2000年問題を40年先送りした。
誰がうまいことを言えと(ry

実際に2000年問題に対応した身としては、うらやましい。の一言に尽きます。

昭和、平成などの元号で表示する場合は変換するから、西暦だろうと皇紀だろうと内部で使用する分には関係ないし。
もうひとつ嬉しいのが、いわゆる2038年問題まで回避できること。
ここまで考えた安田生命の担当者には頭が下がります。

人気blogランキング

posted by まる at 22:29| Comment(0) | TrackBack(0) | プログラマ Chips | このブログの読者になる | 更新情報をチェックする

2006年06月09日

MS06-13によるActiveXのワナ

小雨がしとしと降り続く中、いそいそとテストしていたところ、顧客から怒りの電話がきました。
おそるおそる事情を聞くと、ウチの提供してるサービスを使うとIEがフリーズして作業できないとのこと。
以前は問題なく使えていたのに、ある日を境にフリーズするようになったそうで。

そのサービスではHTML中にActiveXで画像を表示させていますが、以前はなんともなかったのに、電話を受けた時点では画像が一瞬消えるとのこと。こちらでも確認したところ、画像が少ないうちは「画像が消えるなー」という印象ですが、画像が増えると再描画に処理時間を喰われるようで、IEがフリーズします。
ウチはそのサービスに手を加えていないし、ある日を境に動かなくなっているので、IEのパッチが怪しい。調査した結果MS06-13が原因と判明。
MS06-13の説明とか、KB912812の説明によると、ActiveXの扱いを「無条件に使用可能」から「手動で有効にした後でのみ使用可能」に変更した影響のようです。KB917425を適用すれば回避できるので、顧客にはこれで回避してもらいました。

回避策があるといっても、全ての顧客にKB917425を当ててもらうのも面倒。そこで、Microsoft様のご指導に従い修正します。

もとのソース

// test.htm
<object classid="clsid:FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF" id="test"
  codebase="http://foo.com/activex/test.cab#version=1,0,0,0">
    <param name="Target" value="...">
    <param name="ImageURL" value="http://foo.com/test.bmp">
</object>

修正後のソース
// test.htm
<div id="DivId">
    <script src="createElementExplicit.js"></script>
</div>

// createElementExplicit.js
var myObject = document.createElement('object');
DivId.appendChild(myObject);
myObject.classid= "clsid:FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF";
myObject.id="test";
myObject.codebase="http://foo.com/activex/test.cab#version=1,0,0,0";
myObject.Target="...";
myObject.ImageURL = "http://foo.com/test.bmp";

これで、画像が消えることなく動作するようになりました。やれやれ。

人気blogランキング

posted by まる at 21:49| Comment(0) | TrackBack(0) | プログラマ Chips | このブログの読者になる | 更新情報をチェックする

今後の更新について

更新しなきゃ…と思いながらも、ネタ不足のため更新できませんでした。申し訳ない。 書いておかなきゃと思ったことはだいたい書いたので、今後は更新ペースを落とします。
以前は週1回の更新を目標としていましたが、今後は月1回程度ネタがあったら更新するくらいになります。

読者(いるのか?)には申し訳ありませんが、今後もご愛顧のほどよろしくお願いします。

人気blogランキング

posted by まる at 21:45| Comment(0) | TrackBack(0) | おしらせ | このブログの読者になる | 更新情報をチェックする

2006年04月04日

期末のたたかいかた

期末の忙しさにかまけて、更新が停止してから一ヶ月が経過してしまいました。 更新をいったん止めてしまうと、再開が大変ですね。

今回は、期末のやりすごしかたです。
納期直前に終わらない〜 と頭を抱えている場合。
どうするか。

1.にげる
2.たたかう
3.そのた

あなたならどれをとりますか。

1.の「にげる」は訴えかけるものがある選択肢です。後を考えなくてよいのなら、0コンマ1秒の迷いもなく選びます。 ただし、「○○はにげだした。。。しかし、まわりこまれてしまった」となるとシャレになりません。「つうこんのいちげき」を喰らって一発昇天かもしれません。

2.の「たたかう」は、死ぬ前に勝てるかが問題です。レベル1で『りゅうおう』と戦おうとしていたら勝ち目などありません。「はげしいほのお」を吐かれて昇天です。そう考えると、「たたかう」は勝てる場合にのみ通用する選択肢ともいえます。まあ、そもそも勝つ見込みのない戦い(=納期に間に合う見込みのない仕事)を受ける時点で、何かおかしいという気はしますが。世の中にはオトナの事情という分かりたくもない事情があるわけで。

紹介したいのは、「そのた」です。
具体的には、いちぶ「たたかい」、いちぶ「にげる」戦法です。
こういってはなんですが、期末になってくると、できないものはできません。誠意を見せようと、徹夜しようと、休日出勤しようと、人を増やそうと、一ヶ月でWindowsをつくれと言われたってつくれやしません。

そこで、できないという前提の上で、どのように進めるかを顧客と相談します。 頑張れば期間内にできるのであれば、「たたかう」を選択すればよいのです。

顧客と相談する際には、工数に基づいた取捨選択リストを持っていき、期末までに何を達成し、何を残すかを顧客に選ばせましょう。顧客に選ばせてしまえば、我々の責任が少しは減り、次の期に作業を持ち越せます。
会社は来期にただ働きすることになってしまいますが、作業員は一息つけます。

一番いいのは、期間内にちゃんと納品できることなんですけどね。

人気blogランキング

posted by まる at 00:43| Comment(0) | TrackBack(0) | プログラマ Chips | このブログの読者になる | 更新情報をチェックする

2006年03月06日

眠気との闘い

この仕事をしてると、納期間際になってもプログラムができあがらず、ヤバイ…と思う瞬間があります。次に待っているのが徹夜です。
徹夜をすると次の日が眠くてたまりません。
一徹ぐらいなら気合で乗り切れますが、三徹、四徹となると、精神論は通用しません。テクニカルに睡魔を克服する必要があります。
偉大なる先人たちの生み出した睡魔との闘い方を参考にしましょう。

■薬物に頼る

コーヒー、お茶などのカフェイン飲料に始まり、エスタロンモカなどのカフェイン剤、栄養ドリンクなどの薬物に頼る方法です。
眠気と闘う手法としては一般的です。
筆者は午後2-4時の眠い時間対策としてダージリン紅茶を愛飲しています。

ちなみに、日本食品標準成分表によると、抽出液100ccあたりのカフェインの含有量は次のとおりです。
・玉露   :160mg
・紅茶   :50mg
・コーヒー :40mg
・ほうじ茶 :20mg
・煎茶   :20mg
・番茶   :10mg
成分表によるとエスタロンモカは1錠あたり無水カフェイン100mgです。玉露恐るべし


■顔を洗う

トイレで顔を洗います。
連徹で疲れがたまってなければ、眠気のピークを顔を洗うだけで乗り切れます。
しかし、連徹中となると、一時的にはしゃんとしますが、持続時間は5分程度です。
たばこを吸わない人にとっては、席を立って気分転換するいいきっかけでもあります。
デメリットもほとんどないので、どうしても眠くてしょうがない時にどうぞ


■ガムをかむ

画面と、仕様書だけをにらめっこして動かないから眠いのです。あごを動かしていればすこしは眠気もやわらぎます。眠気対策用のガムもありますが、刺激は慣れると効果が薄いと感じています。
筆者のお気に入りはクールミントガムです。


■フリスクを使う

眠いときには刺激を!
ということでフリスクも現場ではよく見かけます。
筆者も駆け出しのころは使っていたのですが、刺激に慣れてしまい、フリスクを一箱たべても、5分しか効果がないのでやめてしまいました。


■同僚と話す

眠いなーと感じてきたら、同僚と口実を見つけて話すのもひとつの方法です。応対に神経を使うため、意識がはっきりします。
問題なのは忙しいときに同僚が相手してくれるか、無駄話に終始して単なる時間の浪費に終わらないか、といったところでしょうか。


■つねる

眠気は強いほかの刺激により一時的に忘れることができます。
一昔前の受験生みたいに、ボールペンで自分の手を刺したり、つねったりしてみましょう。 少しは眠気が飛ぶかもしれません。
フリスクやガム、顔を洗うのもそうですが、刺激によって眠気を飛ばす手法は、持続時間が短いのが特徴です。
これでどうにかなるようなら、他の手法をためす必要はないでしょう。


■メモをとる

会議中にもっとも使う手法です。
単純に話を聞いてるから眠いのであって、議事録をとるつもりでメモをとっていれば眠気を飛ばせます。
…と考えながら会議中に「落ちて」隣の人に起こされたこともあります。
なにごとも過信は禁物です


■「つぼ」を押す

あたまのてっぺんの百会(ひゃくえ)、首のつけねの風池(ふうち)、手の中指の中衝(ちゅうしょう)、足の親指の隠白(いんぱく)などが眠気にきく「つぼ」だといわれています。 筆者自身はつかいませんが、そういう手法もあるということで。


■寝る

結局のところ、上に挙げた手段はすべてごまかしの手段であり、根本的な解決にはなりません。唯一の解決策は寝ることです。といっても8時間も寝るのではなく、一日あたり3時間ぐらいの睡眠です。3時間も無理なひとは、1時間半ぐらい、2回に分けましょう。
単純に徹夜を続けると、仕事のために起きてるのではなく、寝ないために起きてるようになりがちですが、これでは本末転倒です。
明け方前後は、管理者も「落ちて」いる確率が高いので、その隙を逃さずに寝てしまいましょう。


さて、参考になったでしょうか。

人気blogランキング

posted by まる at 23:32| Comment(0) | TrackBack(0) | 社会人 Chips | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は180日以上新しい記事の投稿がないブログに表示されております。