Re: Re: Protect PHP coding

From: Date: Tue, 06 Aug 2002 20:06:37 +0000
Subject: Re: Re: Protect PHP coding
Groups: php.general 
Request: Send a blank email to php-general+get-111426@lists.php.net to get a copy of this message
Jim Jagielski wrote:
Manuel Lemos wrote:
Not you, I meant Zeev presents lame excuses to avoid the subject of
accepting an Open Source cache extension in PHP. At that time, other PHP Group core developers remain conviniently quiet. Maybe, just maybe, the whole history of how APC came about would be illuminating to people... especially how it relates to the Zend Cache (as it was called then). At the core is the question, how well and how much should you trust someone who ignores a NDA? Do people know that CC was actually *beta testing* the Zend Cache, under NDA. And less than 1 month after they stopped testing the Cache, APC was announced and released to the world? Does that sound like a weird thing to people? Using a sneak peak in such a devious way? And then to wrap such behavior up in the cloak of "Open Source" and "free for all."
Jim, as much as I would like to ignore this whole thread, I feel I should respond to this libelous personal attack against my ethics (I am an author of APC). Yes, CCI beta tested the Zend Cache. We did so before any pricing scheme was announced and with good intentions of using it at a reasonable price. In late November 2000, we met with Doron at our offices in NYC to discuss pricing. The proposed pricing at that time was 2k per cpu. At that time, we ran on over 100 dual-cpu machines. The licensing cost was ridiculous. Our negotiations did not result in any sizeable movement on the price, so we told Doron we would just develop our own compiler cache and open source it. He said 'go for it', so we did. Dan and I spent the next 5 weeks working on developing a cache. The hooks in the Zend Engine where very immediately obvious - function pointers for zend_execute() and zend_compile_file() to allow them to be overidden. All one needed to do was store the op_array after execution and return that when we next called compile_file. I don't know what your background in mathematics is, but a phenomena witnessed there is that the cutting-edge research of 50 years ago becomes the grad-level homework assignments of the present-day. It's not because students plagirize the orignial proofs, but because they know it can be done. The hooks in ZE are obvious to anyone who goes looking for them. It's not violation of trade-secrets to read through the php source code. We at no point attempted in any way to reverse engineer the Zend Cache. It's up to the reader of course to believe or not believe me. I would suggest as evidence that our cache was relatively slower than the zend cache (and still is today). Having talked with Nick Lindridge (phpa author), whose prodcut has much more similar performance metrics to ZC, I would believe that the ZC does direct shared memory allocation whereas APC does a serialization/deserialization process (which incurs significant overhead.) CCI never recieved any inside information on how the ZC works. We got the same binaries that everyone else got. The best claim that Zeev made to me about us violating our NDA with Zend was that we used shared memory to cache the op_arrays. Using shared memory techniques for interprocess communication is not exactly new - heck, there's a userspace php library for doing ipc with shared memory. In short, we violated nothing in developing APC. As an aside, I left the employement of CCI over half a year ago, so I have little to gain from defending them in this matter. To me this is a matter of defending my integrity, which has been under attack since I rose to a challenge issued to me by the CEO of Zend.
And I better not hear anyone question by standing on Open Source in all this... I will ignore such clueless responses. -- ===============================================================
George Schlossnagle

« previous php.general (#111426) next »