Re: Re: [PEPr] Comment on File System::S3

From: Date: Thu, 06 Dec 2007 04:51:48 +0000
Subject: Re: Re: [PEPr] Comment on File System::S3
References: 1 2 3 4  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-48698@lists.php.net to get a copy of this message
On Dec 6, 2007 5:49 AM, Gregory Beaver <greg@chiaraquartet.net> wrote: > till wrote: > > Cesar, > > > > I was not aware of your package and DID NOT COPY ANY OF YOUR CODE. > > > > I build this code over 3 months ago and used it in the last month on a > > website and since I was using it in production decided to release it. > > I have no idea when you came up with it, but there are also other > > people who wrote similar packages. > > > > E.g. Clay notified me last night that he had written a very similar package. > > Hi Till, > > There are too many similarities. Let me excerpt a few examples. > > http://www.phpclasses.org/browse/file/20639.html (requires > login to that > site in order to view) > http://php5.lagged.de/pear/File_S3/File/S3.phps > > The order of events in the constructor is the same. Here's two similar > lines from stream_open: > > Till's: > function stream_open($path, $mode, $options, $opened_path) > { > if ($this->countPathComponents($path) != 2) { > $msg = "$path is not a valid amazon s3 file path."; > $msg .= " A file *must* be inside of a bucket"; > > Cesar's: > function stream_open($path, $mode, $options, &$opened_path) { > if ($this->getPathNumberOfComponents($path) != 2) { > trigger_error("$path is not a valid amazon s3 file path. A > file *must* be inside of a bucket",E_USER_NOTICE); > return false; > } > > > Till's: > if ($this->isOpen) { > /** > * The file was opened for read, we exit early, because is > we done > * when the file is closed. > */ > > Cesar's: > if ($this->tOpen) { > /* the file was opened for read, so exit, because file is do > when the file is closed */ > > Till's: > /** > * Write a $data into the buffer. > * > * @param mixed $data Data to write into the buffer. > * > * @return int|bool Numbe of bytes written or false. > */ > function stream_write($data) > > Cesar's: > /** > * Write a $data into the buffer. > * > * @return int|bool Numbe of bytes written or false. > */ > function stream_write($data){ > > The above one is for me definitive proof - the odds of you both > mis-spelling "Number" in the same @return statement are less than 0%. > Google confirms that this is not just a cut/paste from a stream wrapper > example: > > > http://www.google.com/search?q=%22Numbe+of+bytes+written+or+false%22&btnG=Search > > Till's: > /* the required part is not on the buffer, so download it */ > $err = $this->http->ReadReplyBody($tmp, 1024); > > if ($err != '' && strlen($tmp) == 0) { > $this->isEOF = true; > } > $this->buffer .= $tmp; /* buffer this! */ > > Cesar's: > /* the required part is not on the buffer, so download it */ > $err=$this->http->ReadReplyBody($tmp,1024); > if($err!="" && strlen($tmp)==0) $this->isEOF = true; > $this->buffer .= $tmp; /* buffer this! */ > > > Till's: > /** > * Implements the fstats > * > * Thanks to Jeff Arthur for ask this needed feature > * > * @return boolean > */ > function stream_stat() > > Cesar's: > /** > * Implements the fstats > * > * Thanks to Jeff Arthur for ask this needed feature > */ > function stream_stat() { > > Who is Jeff Arthur? > > http://www.phpclasses.org/discuss/package/4144/thread/1/ > > The above is direct proof that your code post-dates Cesar's, as Jeff > Arthur requested this feature from Cesar on Oct. 14. > > Till's: > /** > * Create a directory (aka bucket) on s3 > * > * Example of usage: > * > * <code> > *<?php > * require_once 'File/S3.php'; > * > * define('S3_KEY', '059d545s4d6554'); //fake-code > * define('S3_PRIVATE', 'dsadsadshajkdhas') //fake-code > * > * $e = mkdir("s3://foldername", > * File_S3::PRIVATE_READ || File_S3::PUB_READ > * || File_S3::PUB_WRITE); > * if ($e) { > * echo "Done"; > * } > * else echo "Error! Amazon said: ".$amazonResponse; > *?> > * </code> > * > * Nested folders are currently not support by Amazon S3. > * > * @param string $name Bucket name > * @param int $mode Permision of the bucket > * > * @return bool true if success > */ > function mkdir($name, $mode = READ_PRIV) > > Cesar's: > /** > * Create a Directory or Bucket > * > * Example of usage: > * > * <code> > *<?php > * include("gs3.php"); > * define('S3_KEY', '059d545s4d6554'); //fake-code > * define('S3_PRIVATE','dsadsadshajkdhas') //fake-code > * $e=mkdir("s3://foldername",_PRIVATE||_PUBLIC_READ||_PUBLIC_WRITE); > * if ($e) echo "Done"; > * else echo "Error! Amazon said: ".$amazonResponse; > *?> > * </code> > * Nested folders could not be done!, that is a Amazon S3 Limitation > * > * @param string $name Bucket name > * @param int $mode Permision of the bucket > * @return bool true if success > */ > function mkdir($name, $mode=_PRIVATE) { > > The above example uses the same fake-code, again google proves it is > unique to Cesar's code: > http://www.google.com/search?q=059d545s4d6554+amazon+s3 > > Till, the ball is in your court. Can you provide documented proof that > you did not plagiarize this code? See my email that I just wrote. That's all I can provide. :( I did not steal this code from anywhere. Till

« previous php.pear.dev (#48698) next »