「thread」を含む日記 RSS

はてなキーワード: threadとは

2019-09-14

寄付隠蔽みんなで騙せば怖くない MITと他もいくつか

伊藤穣一 MITメディアラボ前所長

ニコラス・ネグロポンテ (Nicholas Negroponte) MITメディアラボ創設者名誉教授

ローレンス・レッシグ (Lawrence Lessig) ハーバード大学法学部教授

ピーター・コーヘン (Peter Cohen) MITメディアラボ前開発部長

ラファエルライフ(Rafael Reif)MIT理事長

セスロイド(Seth Lloyd) MIT機械工学教授

リチャード・ストールマン (Richard Stallman) MITコンピュータ科学人工知能研究所 (CSAIL) 客員研究員GNUプロジェクト創始者フリーソフトウェア財団 (FSF) 代表

伊藤穣一

Reid Hoffman apologizes for role in Epstein-linked donations to MIT

リードホフマンLinkedIn創業者)の謝罪

My few interactions with Jeffrey Epstein came at the request of Joi Ito, for the purposes of fundraising for the MIT Media Lab. Prior to these interactions, I was told by Joi that Epstein had cleared the MIT vetting process, which was the basis for my participation. My last interaction with Epstein was in 2015. Still, by agreeing to participate in any fundraising activity where Epstein was present, I helped to repair his reputation and perpetuate injustice. For this, I am deeply regretful.

私の数少ないジェフリー・エプスタインとの関わりは、伊藤穣一の求めによるもので、MITメディアラボ資金集めのためのものです。会う前に、私は伊藤穣一からエプスタインMIT審査手続きクリアしたと聞きました。それがエプスタインに会った理由です。エプスタイン最後に会ったのは2015年でした。エプスタインが出席した資金集め活動に何であれ参加することに同意したことで、エプスタイン名誉回復し、不正を長続きさせることを手助けしました。これについて、私は深く後悔しています

ニコラス・ネグロポンテ

MIT Media Lab founder defends embattled director's decision to accept money from Jeffrey Epstein (The Boston Globe)

In an e-mail to the Globe sent after the meeting, Negroponte said he told Ito that “he should” take Epstein’s contribution, and “I would say that again based on what we knew at the time. . . . “Epstein is an extreme case. But then do you take Koch money? Do you take Huawei money? And on and on?” Negroponte said.

MITメディアラボ総会で、「ジェフリー・エプスタインから資金を今でも受け取れと所長に言う」との発言を)総会の後に届いたメールでは、「所長は受け取る「べき」だ」、「あのときわかっていたことを基にすれば、同じことをいう」という意味だと説明した。(略)「エプスタインは極端な例だ。しかコーク・インダストリーズアメリカ保守勢力コーク家同族企業)の金なら受け取るのか?ファーウェイの金は?じゃあ他はどうなる?」とネグロポンテは言った。

ローレンス・レッシグ

On Joi and MIT

I had known of Joi’s contact with Epstein since about the beginning. He had reached out to me to discuss it. We are friends (Joi and I), and he knew I would be upset by his working with a pedophile.

Joi伊藤穣一)がエプスタインと連絡を取っていたのは、最初から知っていた。彼はそのことを私に相談していた。彼と私は友人で、自分小児性愛者と仕事をしていることで、私が動揺することを、彼は知っていた。

Joi believed that he did not. He believed Epstein was terrified after the prosecution in 2011. He believed he had come to recognize that he would lose everything. He believed that whatever else he was, he was brilliant enough to understand the devastation to him of losing everything. He believed that he was a criminal who had stopped his crime. And nothing in his experience with Epstein contradicted this belief.

エプスタインはもう虐待者ではないと Joi は信じていた。エプスタイン2011年起訴された後、恐怖に襲われている、と伊藤穣一は信じていた。エプスタインはすべてを失うことになるのを認識するに至ったと伊藤穣一は信じていた。いずれにせよ、エプスタインはすべてを失うという絶望理解する十分な知性があると、伊藤穣一は信じていた。エプスタインはもう犯罪を犯さな犯罪者だと、伊藤穣一は信じていた。伊藤穣一はエプスタインに会って、その信念に矛盾することを何も感じなかった。

IF you are going to take type 3 money, then you should only take it anonymously. . . . Good for them, for here, too, transparency would be evil.

タイプ3の資金犯罪者から犯罪でない方法で得た資金)を受け取るなら、匿名でのみ受け取るべきだ。(略)(学生学歴秘密にするように、資金を受け取る場合も)透明性は悪になる。

Sure, it wasn’t blood money, and sure, because anonymous, the gift wasn’t used to burnish Epstein’s reputation.

かにエプスタイン資金犯罪で得られたものではなく、確かに匿名で受け取ったので、その資金提供はエプスタインの名声を高めるために使われていない。

I know that Farrow’s article is crafted to draw the following sentence into doubt: Everything Joi did in accepting Epstein’s money he did with MIT’s approval. I trust the MIT review will confirm it (yes, I remain exactly that naive). So why is he resigning, rather than others in the administration?

ファローによるニューヨーカー記事は「JoiMIT承認の下、エプスタイン資金を受け取った」ことが疑わしくなるように整形されている。MIT調査はそれを承認したと、(ええ、馬鹿正直だと思うが)私は信じている。そうなら、MIT経営陣ではなく、なぜ彼が辞職するのか?

And if Ito must go because Epstein’s wealth was accepted anonymously, who else should go because of blood money accepted openly? Will the planet have an equal advocate who demands justice for the Koch money? Or the victims of opioid abuse for the Sackler money?

もし、エプスタイン資金匿名で受け取ったことで、伊藤が辞職しなければいけないなら、顕名犯罪により得た資金を受け取った人は辞職すべきだろうか?保守勢力コークインダスリー資金に対して、正義を求める平等主義弁護士はこの地球にいるのだろうか?サックラー家の資金に対してオピオイド被害者は?

So put the parts together: The MediaLab accepted an anonymous contribution from Epstein through the help and direction of Joi. The Lab did not (as “Professor Anonymous” wrote to me, his outrage apparently blinding him to irony) “help reputation-launder a convicted sex offender.” It would have, had it not be anonymous; but that’s the point about it being anonymous.

要点をまとめると、メディアラボJoi の補助と指示によりエプスタインから匿名寄付を受け取った。メディアラボ有罪性犯罪者汚名を雪ぐことは何もしていない。匿名でなければ、汚名を雪ぐことがあったかもしれないが。それが匿名であることのポイントである

ピーター・コーヘン

Peter Cohen, a former director of development and strategy, said in a statement that when he joined the Media Lab in 2014, it already had established procedures for handling Epstein’s contributions. Cohen said he understood that those policies were “authorized by and implemented with the full knowledge of MIT central administration.”

MITメディアラボ前開発部長ピーター・コーヘンは声明で、2014年メディアラボ仕事を始めたとき、エプスタイン資金提供を扱う手順(匿名化、少額分割)はすでに出来上がっていた。これらの方針は、MIT経営陣の中心が十分理解したうえで承認され、実行されていた、と彼は理解した。

ラファエルライフセスロイド

少女虐待容疑の米富豪のMIT寄付、理事長が容認 大学ぐるみで匿名化 (AFPBB)

MITセスロイド(Seth Lloyd)教授がエプスタイン被告から寄付を受けたことに対する感謝状に、ライフ氏の署名があることを、同大とエプスタイン被告との関係調査している法律事務所から知らされたという。

Letter regarding preliminary fact-finding about MIT and Jeffrey Epstein不正資金に対する調査途中経過報告)

Second, it is now clear that senior members of the administration were aware of gifts the Media Lab received between 2013 and 2017 from Jeffrey Epstein’s foundations. Goodwin Procter has found that in 2013, when members of my senior team learned that the Media Lab had received the first of the Epstein gifts, they reached out to speak with Joi Ito. He asked for permission to retain this initial gift, and members of my senior team allowed it. They knew in general terms about Epstein’s history – that he had been convicted and had served a sentence and that Joi believed that he had stopped his criminal behavior. They accepted Joi’s assessment of the situation. Of course they did not know what we all know about Epstein now.

メディアラボ2013年から2017年の間にジェフリーエプスタイン基金から資金提供を受けたことを、MIT経営陣の上層部が知っていたことが明らかになった。メディアラボがエプスタイン資金を初めて受け取ったことを2013年上層部が知ったとき伊藤穣一に連絡を取ったことがわかった。伊藤穣一はその資金を返却しない許可を求め、上層部許可した。伊藤穣一上層部はエプスタインの経歴について、有罪になって刑に服したという一般的事柄を知っていた。伊藤穣一はエプスタイン犯罪行為を止めたと信じていた。上層部伊藤穣一による評価を受け入れた。エプスタインについて今わかっていることを、当時彼らは知らなかった。

Joi sought the gifts for general research purposes, such as supporting lab scientists and buying equipment. Because the members of my team involved believed it was important that Epstein not use gifts to MIT for publicity or to enhance his own reputation, they asked Joi to agree to make clear to Epstein that he could not put his name on them publicly. These guidelines were provided to and apparently followed by the Media Lab.

伊藤穣一は、ラボ研究者支援設備購入などの一般的研究目的資金を求めた。かかわった経営陣のメンバーは、伊藤穣一にエプスタインから次の事項に対する了承を得るよう求めた。MITへの資金提供を公にしたり、エプスタインの評判を良くしないように、資金提供名前公表しないこと。これらのガイドラインメディアラボ提供され、メディアラボガイドラインに従った。

Information shared with us last night also indicates that Epstein gifts were discussed at at least one of MIT’s regular senior team meetings, and I was present.

エプスタイン資金提供について、少なくとも1度は上層部定例会議で議論された。理事長である私も出席していた。

I am aware that we could and should have asked more questions about Jeffrey Epstein and about his interactions with Joi. We did not see through the limited facts we had, and we did not take time to understand the gravity of Epstein’s offenses or the harm to his young victims. I take responsibility for those errors.

ジェフリーエプスタイン自身と、彼と伊藤穣一とのやりとりについてもっと質問できたし、すべきだった。知りえた少ない事実を精査しなかった。エプスタインによる加害行為の重大さや若い被害者への危害理解する時間を取らなかった。これらの過ちの責任理事長である私にある。

リチャード・ストールマン

Famed Computer Scientist Richard Stallman Described Epstein Victims As 'Entirely Willing' (The Vice)

Early in the thread, Stallman insists that the “most plausible scenario” is that Epstein’s underage victims were “entirely willing” while being trafficked.

メーリングリストスレッドの初期に、「最も可能性のあるシナリオは、エプスタインにより被害を受けた未成年者は、売春強要されている間、完全に自ら望んでその状況にあったとすることだ」とストールマンは主張した。

メーリングリスト投稿されたストールマンメールを含む一連のスレッドは、記事最後PDF ファイルで閲覧できる。

制限文字数を超えたため、続きは寄付隠蔽みんなで騙せば怖くない MITと他もいくつか 続きに書きました。

2019-06-09

rustのコードをcpupoolとthread::spawnで(2種類試した)マルチスレッド化してみたんだけど、5スレッド並列させてみてもCPU使用率シングルスレッドの2倍程度にしかならないんだけどそんなもん?

2019-03-05

C#が分からない・・

            // 私はこの記述について真に驚くべき不具合発見したが、ここに記すには余白が狭すぎる。
            System.Threading.Thread.Sleep(10);

これ、どうしたらええねん。

2018-02-05

[]ドレミの歌いろいろ

イタリア語:

ドレミ音階ルーツが、1024年イタリア僧侶が、

聖ヨハネ賛歌から考え出したとされ、

Ut Re Mi Fa Sol La」に

17世期Sancte Ioannesの頭文字の Si が加わり、

さらに後、Ut発音しにくいので、

DominusのDoに変更されたそうです。

ドレミの歌」

DO se do qualcosa a te

RE e`il re che c`era un di`

MI e`il mi per dire a me

FA la nota dopo il MI

SOL e`il sole in fronte a me

La se proprio non e`qua

SI se non ti dico no

e cosi` ritorno al DO

Tutti insieme appassionatamente)

(訳)

あげる  君になにかをあげるなら

王様  昔いた王様

私    私にと言うためのmi

FA ミの次の音

太陽 私の目の前の太陽

あっち  こっちでないなら

はい   いいえと言わないなら

さあこれでドに戻ります

英語

Do-Re-Mi

Doe, a deer, a female deer

Ray, a drop of golden sun

Me, a name I call myself

Far, a long, long way to run

Sew, a needle pulling thread

La, a note to follow sew

Tea, a drink with jam and bread

That will bring us back to Doe

(訳)

ドゥは 鹿、雌鹿

レイは 金色太陽の光

ミーは 自分自分を呼ぶとき名前

ファーは 遠い、走っていく長い道のり

ソーは 針で糸をひくこと

ラは ソに続く音符

ティは ジャムパンに合う飲み物

そしてまたドゥに戻る(最初からやり直そう!)


フランス語

Do, le Do, il a bon dos

Re, rayon de soleil d'or

Mi, c'est la moitie d'un tout

Fa, c'est facile a chanter

Sol, la terre ou vous marchez

La, l'endroit ou vous allez

Si, c'est siffler comme un merle

Et comme ca on r'vient a Do-o-o-o

(訳)

Do Doは

Re 黄金の太陽の光

Mi 全体の半分

Fa 歌うのは易しい

Sol 貴方の歩く大地

La 貴方の住んでいる場所

Si 黒鶫(くろつぐみ)のさえずり

さあ Doに戻りましょう


トルコ語

Do dir kullah(*) dondorma

Re masmavi bir dere

Mi denizde bir demi

Fa denizde bir tayfa

Sol papatyali(*) bir yol

La yagmurdan(*) bir damla

Si ilknurun kedisi

Do bir kulalr dondorma

(*)トルコ語文字化けするといけないので、u 、i 、g で代用

(訳)

ドは 1カップの アイスクリーム

レは 真っ青な 1つの渓流

ミは 海に 一隻の船

ファは 海に 一人の船員

ソは 真白菊の咲く 一本の道

ラは 雨から 一滴のしずく

シは イルクヌル女性名前)の 猫


英語直訳版:

do wa mesu no shika

re wa hi no hikari

me wa watashi desu

fa wa tooi no koto

so wa hari de nuu

ra no tonari wa so

ti wa pan to tomo ni

soshite mou ichido

三重県公立中学校英語教材として用いられた。

https://web.archive.org/web/20071005084349/http://danceart-web.hp.infoseek.co.jp/doremi.htm

2016-07-25

gitにおけるコミットログ/メッセージ例文集100

私はコミットログの書き方に悩む英語の苦手な人間である。実際、似たような人は世の中に結構いるようで、頻出単語を集計したりまとめたものは既にあって役に立つのだけれど、これらはあくま単語の話であり、具体的な文を構成する過程でやっぱり困る部分がかなりあった。

要するに、どういう時にどういう文が使われているのか、ということを示した例文集が欲しいのであるググると他にも「例文集があればいいのに」みたいな声はあるくせして、しかし誰も作ろうとしない。何なんだお前ら。それじゃ私が楽できないじゃないか

仕方なく自分でまとめたので、増田に垂れ流しておく。

はじめに

ここで挙げているコミットログは全て実際のコミットログから転載である。当然ながら各コミットログ著作権はそれぞれの書き手にある。いずれも各英文でググれば出てくるし、フェアユース範囲なら許してくれるだろうと考え名前プロジェクト名は割愛したが、ここにお詫びと感謝を述べておきたい。

抽出条件だが、参考にできそうなコミットログを多く含んでいそうなリポジトリGitHubSTARの多い方からざっと目で見て適当に選び、それぞれ最新コミットから5000件抽出した(あわせて前処理として、コミットログ冒頭のタグ情報は消去した)。

結果として対象としたリポジトリは以下の通り。

atomのみ5400件抽出していたため、計25400件のコミットログベースである。このうち、以下の条件に合致するものは参考例にすべきでないとして一律排除した。

こうして残った8540件を眺めながら、適当に切り出したのがこの用例集である個人的に「うーんこの」と思った表現も、散見される場合は載せた。

ということで、以下用例を羅列していく。

用例集

オプションフラグメニューを追加した
ファイルを追加した
メソッド機能を追加した
実装を別のものへ切り替えた
  • Use args.resourcePath instead of args.devResourcePath
  • Use arrays instead of while loops
  • Use auto instead of repeating explicit class names
  • Use weak pointer instead of manual bookkeeping
  • Change all uses of 'CInt' to 'Int32' in the SDK overlay
  • Change Integer#year to return a Fixnum instead of a Float to improve consistency
新しく何かに対応した/機能上の制約を取り払った
何かを使うようにした
より好ましい実装に改良した
何かを出来ない/しないようにした
  • Don't bail reading a metadata instance if swift_isaMask isn't available
  • Don't exit until the parent asks for an instance
  • Don't include Parent pointer in Nominal/BoundGeneric TypeRef uniquing
  • Don't use MatchesExtension for matching filters
  • Don't use ES6 class for AutoUpdater windows class
  • Don't use MatchesExtension for matching filters
  • Avoid `distinct` if a subquery has already materialized
  • Avoid infinite recursion when bad values are passed to tz aware fields
オブジェクトの内容や挙動確認やすくした
Assertを追加した
不要コードを除去した
コードを移動した
名前修正した
さなバグタイポ修正した, 警告を潰した
バグや好ましくない挙動修正した
テストコメントドキュメントを追加した
テストを削除した
テストコメント修正した
ドキュメント修正した

表現傾向とまとめ

以上の用例をふまえ、今回の参考ログ8540件から先頭の単語を出現回数で並べると次のようになった。

Add1149
Fix1014
Update584
Remove566
Use382
Don't260
Make228
Move178
Change103
Rename85
Improve76
Avoid68
Allow65
Implement60
Handle58

コミットログの基本形はもちろん動詞 + 名詞である名詞固有名詞複数形、不可算名詞が多いが、単数形場合冠詞は a が使われるか、あるいは省略される。the はまず使われない。

何かを追加した、という表現では非常に広く Add が使われる。メソッドからテストドキュメントに至るまで大概これでまかなえる。

一方、何かを修正した、という表現では広く Fix が使われる。「何か」は typocrash といった単語からメソッド名まで幅広い名詞を取るが、動名詞はあまり取らないのと、that節は取らないのでその点は注意が必要である

Fix は「何かが正しく動くようにした」ことを示し、正しい動作内容が何かを説明しない。そこで正しい動作内容に言及したい場合Make sure が使われる(こちらはthat節が取れる)。ただし Fix よりもニュアンス的に重い表現と思われ、Fix を使わず Make sure ばかり使うのはちょっとキモいのではないかと思う(Ensure はさらに重い表現っぽい)。

また、Fixtypo 以外でのドキュメント修正に対して使われることは稀である。対して Update はドキュメントコメントテストに使われ、本体コード修正に対しては使われない。本体コード修正にあわせてテスト更新したなら Update が使われる。ただ、テスト機構それ自体バグ修正したなら Fix である

無駄な何かを単純に除去したなら Remove を使う。これまでのもの(A)からのもの(B)に切り替えたのであれば Use B instead of A か Change A to B が使われる。新たに何かを利用するようにしたのであれば Use を、利用を取りやめた場合Don't use を使うことが多い。

何かをしないようにしたなら Don't を、内部実装効率化なら Make A + 比較級/形容詞Improve が使われる。

中身の変更を伴わない単なる名前の変更なら Rename A to B、コード機能論理上の場所を移動させたなら Move A to B である

この辺はリファクタリングと呼ばれる行為と思うが、Refactor というぼんやりした動詞はあまり使われず、このように変更内容の種類に応じて動詞が使い分けられている。

余談

コミットログにはWhyを書くべきだ、というのを何かで見かけたので because とか since を使ったログがどの程度あるかを調べたが、8540件のうち22件だった。基本的に短く、シンプルに、一目で意味が取れるログが好まれる傾向がある。例えば get rid of とか2件しか使われておらず、圧倒的に remove である

一方で、シンプル単語だけど開始単語としては使われないものもある。例えば次のような単語である。Expand(9)、Extend(8)、Print(5)、Optimize(5)、Publish(4)、Append(4)、Modify(3)、Manage(2)、Revise(2)、Dump(2)、Insert(2)、Migrate(2)、Enhance(1)、Edit(1) 。いずれもカッコ内は8540件に対する冒頭での登場回数である。結局、より一般的平易な単語で表せたり、Refactor同様に抽象度が高すぎると使われないのだろう。

おわりに

8000件もログを見たおかげで、迷いなくコミットメッセージが思いつくようになったのが個人的には今回書いてて最大の収穫だった。たぶんカンニングペーパーを作る行為それ自体効率のいい学習になるという話と同じだと思う。

このまとめも100以上用例を転載してあるので、それを読むだけでも多少は効果があるんじゃないかと思う。同じようにコミットログ書きたくねぇなぁ英語わっかんねぇなぁと思っている人にとって、何か役に立つところがあれば幸いである。

2016-04-01

月刊Vim 3月号 - ゼロ除算編

:echo 1 / 0
:echo 0 / 0
2147483647
-2147483648

きっしょwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

他の言語もチェックしてみるか

golang

package main

import "fmt"

func main() {
	fmt.Println(1 / 0)
	fmt.Println(0 / 0)
}

division by zero

php

echo 1 / 0;
echo 0 / 0;

PHP Warning: Division by zero

python 2

print 1 / 0
print 0 / 0

ZeroDivisionError: integer division or modulo by zero

python 3

print(1 / 0)
print(0 / 0)

ZeroDivisionError: division by zero

nodejs

nodejsだと1/0と0/0で異なるメッセージが表示された。

console.log(1 / 0);

Infinity

console.log(0 / 0);

NaN

luajit

luajitだとnodejsで表示されたメッセージの短縮形で表示された

print(1 / 0)

inf

print(0 / 0)

nan

haskell

修正しました thx @anekos

main = do
    print(1 / 0)

Infinity

main = do
    print(0 / 0)

NaN

java

public class Test {
    public static void main(String[] args) {
        System.out.println(1 / 0);
    }
}
public class Test {
    public static void main(String[] args) {
        System.out.println(0 / 0);
    }
}
Exception in thread "main" java.lang.ArithmeticException: / by zero
        at Test.main(Test.java:3)

bash

#!/bin/bash

echo $((1 / 0))
echo $((0 / 0))
test.bash: 行 4: 1 / 0: 0 による除算です (エラーのあるトークンは "0")
test.bash: 行 5: 0 / 0: 0 による除算です (エラーのあるトークンは "0")



haskellnodejsとluajitはエラーにならないけどまあいい。

Vimはやべえよ。


結論言語わずゼロ除算はするな









しまった、4月だった。

2014-02-27

http://anond.hatelabo.jp/20140227093524

わかる。

原語の歌詞だと音名の頭文字じゃなくて音名そのものと同じ発音の単語紹介なので(ラを除く)違和感ないんだけどね。

Doe,a Deer,a female deer

Ray,a drop of golden sun

Me,a name I call myself

Far, a long long way to run

Sew, a needle pulling thread

La, a note to follow So

Tea, a drink with jam and bread

2013-08-12

Webサーバを作る】http://d.hatena.ne.jp/kmaebashi/20130804/p1

マネしてPerlで書いてみた。以下ソースコード

use Fcntl;

use strict;

use Socket;

use threads;

use POSIX qw(strftime);

use File::Spec::Functions qw(rel2abs);

my $thread = threads->new(\&serverThread, "");

$thread->join;

sub getContentType {

my $ret;

my %hashmap=(

"html" => "text/html",

"htm" => "text/html",

"txt" => "text/plain",

"css" => "text/css",

"png" => "image/png",

"jpg" => "image/jpeg",

"jpeg" => "image/jpeg",

"gif" => "image/gif"

);

$ret = $hashmap{$_[0]};

if ($ret eq "") {

return "application/octet-stream";

} else {

return $ret;

}

}

sub serverThread {

my $documentRoot = rel2abs("D:/var/www/html");

my ($line, $path, @tmp, $ext, $data, $absPath);

socket(SERVER, PF_INET, SOCK_STREAM, getprotobyname('tcp'));

bind(SERVER, sockaddr_in("8001", INADDR_ANY)) || die;

listen(SERVER, SOMAXCONN) || die;

while (accept(CLIENT, SERVER)) {

while (<CLIENT>){

$line = $_;

last if ($line eq "" || $line eq "\r\n" || $line eq "\n");

if (index($line, "GET") == 0){

$path = (split(/ /, $line))[1];

@tmp = split(/\./, $path);

$ext = @tmp[$#tmp];

}

}

print CLIENT "HTTP/1.1 200 OK\r\n";

print CLIENT "Date: " .strftime("%a, %d %b %Y %H:%M:%S GMT", gmtime). "\r\n";

print CLIENT "Server: Sever03.java\r\n";

print CLIENT "Connection: close\r\n";

print CLIENT "Content-type: ". getContentType($ext). "\r\n";

print CLIENT "\r\n";

$absPath = rel2abs($documentRoot. $path);

if (index($absPath,$documentRoot)==0 && sysopen(FH, $absPath, O_RDONLY | O_BINARY)) {

while ($data = <FH>) {

print CLIENT $data;

}

print CLIENT "\r\n";

close FH;

}

close CLIENT;

}

}

コアモジュールだけ使った。

元ネタJavaコードディレクトリトラバーサルになってたんで、一応対策を盛り込んだ。

といっても絶対に外向けに動かさないように。無いと思うけど。

いろいろツッコミくれるとうれしいです。

 
アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん