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.phpsThe 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=SearchTill'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+s3Till, the ball is in your court. Can you provide documented proof that
you did not plagiarize this code?
Thanks,
Greg
--
PEAR Development Mailing List (
http://pear.php.net/)
To unsubscribe, visit:
http://www.php.net/unsub.php