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

From: Date: Thu, 06 Dec 2007 04:49:36 +0000
Subject: Re: Re: [PEPr] Comment on File System::S3
References: 1 2 3  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-48696@lists.php.net to get a copy of this message
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? Thanks, Greg

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