Tag Archives: sourceforge

PHP Brasil ’08

I have posted a trip report about PHP Brasil '08 over at the SourceForge.net Community Hub. There's also a video of my talk, a link to Chris Jones's thorough trip report, and links to my presentation slides.

Laughably Ridiculous

Okay, although I'm an open-source devotee, I've actually intellectually bantered in favor of copyright law. I know, I'm sorry; but I can understand the philosophical underpinning of *a* copyright scheme ... even if I don't agree with its effectiveness.

But this is just getting absurd.

Interestingly, SPFF is also going after Sourceforge, the open source development website, because it hosts the P2P application Shareaza.

So let me state this matter-of-factly:

In suing SourceForge, SPFF is not suing an entity who distributes copyrighted material. They're not even suing someone who develops software that might be used to distribute copyrighted material. SPFF is suing someone (i.e., SourceForge) who develops software (i.e., sf.net) that might be used to develop or distribute software (i.e., Shareaza) that might be used to distributed copyrighted material.

the binary canary testing pattern

I think I just invented a new testing pattern - The Binary Canary.

Basically, I was grouping my PHPUnit tests into a test suite and I realized that my TestCase super-classes were "failing" because they had no tests in them. Obviously this is intentional - only the specific sub-classes would have tests.

I guess I could have made the TestCase super-classes abstract, but instead I added this to the highest-level TestCase class:


/*
* global test plumbing here
*/
class Sfx_TestCase extends PHPUnit_Framework_TestCase
{
public function setUp()
{
// more global test plumbing here
}
public function test_Binary_Canary()
{
$this->assertEquals(
"Binary Canary says test plumbing is working.",
"Binary Canary says test plumbing is working."
);
}
}

My little binary canary serves two purposes:

  1. It adds an "always-pass" test to each of my TestCase classes so they don't throw up any more PHPUnit warnings.
  2. Because my TestCase classes set up context-specific test plumbing, the binary canary test inherited by each of them now alerts me if I screw up any of my test plumbing - and tells me the specific area.

For example:


class Sfx_Db_TestCase extends Sfx_TestCase
{
public function setUp()
{
parent::setUp();
// Db-specific test plumbing
}
}

And:


class Sfx_Controller_TestCase extends Sfx_TestCase
{
public function setUp()
{
parent::setUp();
// Controller-specific test plumbing
}
}

Just like the coal-miner canaries of old, this mechanism gives me a simple yes/no signal as to whether or not my test plumbing will soon kill me, and which plumbing code is the culprit.

boycott boycottnovell.com

okay, I'll be the first to say that the Novell-Microsoft deal was bad - way bad. and I am boycotting Novell myself. to summarize my perspective on it, I'll simply present Moglen's analysis on the subject, which I consider to be one of the top 5 extemporaneous monologues of all time:

but I also take issue with the opposite extreme that, because Microsoft has done bad things with the community, they are comprehensively unable to do any good things with the community. I know that boycottnovell.com isn't the only crier of this fallacy, but they're the ones who are recently taking pot-shots at my employer - a company that I think has always valued, and continues to value, the success of the community, or else I would not have taken a job with them.

from the inside, I can tell it plainly that Microsoft is simply a sponsor and participant in our 2008 CCA awards. technically, I also happen to know that we did nothing more than pre-load a big list of Codeplex project names into our CCA 08 database. there's no conspiracy to go thru all of our projects and attach Codeplex EULA's to them, or to use our CCA awards to scare the OSS community, as Roy Schestowitz seems to imagine.

Roy's pieces at boycottnovell.com seem to flow from his presumed indisputable inference that the motivations of not only Microsoft, but also anyone who collaborates with Microsoft, are sinister in nature. and he's repeatedly making these near-libelous statements, which boycottnovell.com is enabling, and this is the reason I'm boycotting them in addition to boycotting Novell.

as I preview this post myself, it is comical to contrast Roy's proof-by-verbosity case with Moglen's eloquent and exemplary case against a specific abuse.