A little discovery

From: me (you-know-who at domesticat.net)
To: Jenn (jenn at intensified dot org )
CC: Gareth (hi Gareth!)
Subject: Questions regarding your skinning tutorial

Hello -

My name is Amy, and I am the owner of domesticat.net. It was recently suggested to me that I pay close attention to one of the tutorials that you have posted on intensified.org.

I took a look at this page (intensified.org/tuts/skinningindex.php) and was a bit concerned about what I saw there. While I do not claim to have any kind of copyright on the *process* of skinning, I *do* claim copyright on the code that I have written.

Let's compare:

----- mine -----
<?php include("/path/to/your/site/html/cookiecheck.php"); ?>

<?php
$headervar = "/path/to/your/site/html/nav/header";
$extension = ".php";
include ($headervar.$skin.$extension);
?>

<?php
if (isset($newskin)) {
$newskin=(int)$newskin;
if ($newskin<1) $newskin=1;
if ($newskin>14) $newskin=1;
} elseif (isset($skin)) {
$newskin=(int)$skin;
if ($skin<1) $newskin=1;
if ($skin>14) $newskin=1;
} else {
$newskin=1;
}
$skin=$newskin;

?>

<?php
$footervar = "/path/to/your/site/html/nav/footer";
$extension = ".php";
include ($footervar.$skin.$extension);
?>
----- end mine -----
(taken from these pages: domesticat.net/skins/tutorial/begin_with_php.php and domesticat.net/skins/tutorial/the_cookiecheck.php )

----- yours -----

<?php include("/home/NAME/public_html/skins/cookiecheck.php"); ?>

<?php
$headervar = "/home/NAME/public_html/skins/header";
$extension = ".inc";
include ($headervar.$skin.$extension);
?>

<?php
if (isset($newskin)) {
$newskin=(int)$newskin;
if ($newskin<1) $newskin=11;
if ($newskin>11) $newskin=11;
} elseif (isset($skin)) {
$newskin=(int)$skin;
if ($skin<1) $newskin=11;
if ($skin>11) $newskin=11;
} else {
$newskin=11;
}
$skin=$newskin;
setcookie ('skin', "", time() - 3600);
setcookie('skin',$newskin,time()+(86400*365),'/');
setcookie('skin',$newskin,time()+(86400*365),'/','.kiss-my-kitty.com');
$skin=$newskin;
?>

<?php
$footervar = "/home/NAME/public_html/skins/footer";
$extension = ".inc";
include ($footervar.$skin.$extension);
?>
----- end yours -----

My skinning tutorial has been available on the web since September 9, 2001 (see this entry announcing it: domesticat.net/node/374 or confer with Christine, formerly of blahblahblog.com, whose questions I used to create the tutorial). The cookiecheck code was actually written by Gareth Watts, my siteadmin.

I have trouble suspending my disbelief that recently, on your own, you have crafted an almost exact duplicate skinning method that I use, down to the very same cookiecheck and header/footer include code. I think it far more likely that, in fact, you've borrowed my code and cut down the tutorial to your taste.

Just because I make my code available for others to use does not mean that I am willing to allow other people to claim that they created it when they, in fact, did not.

In that case, I will ask for one of two things. If your tutorial is to remain up and will continue to contain my code, I ask for acknowledgement on the page that the code is mine, and a link back to my tutorial. Otherwise, please take it down. That's pretty excruciatingly fair, in my opinion.

If you claim that you wrote this code and that the copyright is yours, I'd appreciate seeing some kind of proof. Be aware - in addition to my written notes, I have the archived emails back and forth with Christine, as well as emails and instant message archives with my sysadmin about how best to lock down the cookiecheck code.

Amy
(owner, domesticat.net)
-----------------------------------------------------------
" 'I dust a bit,' Ignatius told the policeman. 'In addition,
I am at the moment writing a lengthy indictment against our
century. When my brain begins to reel from my literary
labors, I make an occasional cheese dip.' "
- John Kennedy Toole, _Confederacy of Dunces_
domesticat.net: Much ado about the usual nothing.
nautilus-blue.net: Less ado. Still nothing.
-----------------------------------------------------------

and blast, I forgot to include in this section of code from my site as well, because it was on yet another page:

$skin=$newskin;
setcookie ('skin', "", time() - 3600);
setcookie('skin',$newskin,time()+(86400*365),'/');
setcookie('skin',$newskin,time()+(86400*365),'/','.domesticat.net');
$skin=$newskin;

You know...someday, people are going to figure out that while I may seem like a scatterbrained dingbat, I actually keep pretty detailed copies of my activities online - emails, IMs, code, designs, etc.

Next addendum: here's her reply.

Amy,

I understand your concern and rather misplaced aggravation, but I have no intention of taking down my skinning tutorial nor giving you credit, and this is why:

Sarah from http://www.onestarrynight.com taught me how to skin (way back in June 2002), and I took HER instructions and turned them into a tutorial.

I have never even been to your site.

Take care,

Jennifer

...and my response.

Jennifer -

I've contacted Sarah to find out how she found out about the code, but that's pretty much irrelevant at this point. What *does* matter is that the code you are posting is an exact match to what I've had on my site for well over a year - code that I do maintain copyright on.

While I'm sorry that you were unaware of it, a very quick search on Google would have turned this information up for you at any point in time. A search for virtually ANYthing along the lines of website themes / skins / skinning with PHP / etc. would have turned up the pages on my site, as well as many links to them from other websites. (Not to mention if you'd actually done searches on the code itself.) On those pages on my site would be the code that you have made available on your site without crediting.

While you may have been ignorant in the past that this code was of my creation, this is no longer the case. I'm *not* asking you to take the tutorial down; I'm asking for an acknowledging link on your page to the original tutorial on my site, because I wrote the code that you are providing to others. That's all.

This is not a difficult issue to resolve, and can be very quickly remedied on your part.

Amy

all tags: 

Comments

Oh dear Lord.

You must feel great, being famous enough for people to steal from you. When I went to the mall this weekend, I don't have enough fingers to count how many times I heard the alarms go off because people were trying to shoplift. Like I began not even to notice it, and I don't think that i should be forced to become so used to people stealing stuffs that it becomes commonplace, you know? I would like to see this girl's reply, and am fairly sure that you're going to post it ;).

I wouldn't call it 'great.' After posting the tutorial, it was flattering for about three weeks, then I got over it, and then I even found myself wishing I'd never posted the silly thing. It's flattering to think that people give a damn about what gets put on this site - flattering and seductive - but I've found myself asking the same kind of question over and over again: what kind of effect does 'having an audience' have on the life and psyche of the performer? To me, that's a lot of what online journaling is - performance. To one degree or another, we all crave attention; to know that our existence touches others, makes them think, perhaps even makes them care (even if just for a minute or two). Knowing that the only thing I have to do to get a thought from my head into a regular reader's is just to post it ... is a double-edged sword. The line between honest, thoughtful writing and manipulative, egotistical writing is very broad and very hazy. The bad thing about writing code and making it available for others to use is that it's very easy for those random users out there to assume that I know everything there is to know about coding. That is most definitely not the case. I don't know even a quarter of the stuff there is to know about coding. I know I don't, and if I ever started thinking that I did, Gareth is sitting in the wings, ready to smack some sense back into my head. The problem is that, bad code or not, my choice to release code for public use puts me (and my site) in the spotlight. My words end up receiving far more scrutiny than they deserve, but I can live with that. If I want to publish a novel one of these years, it's good training. The part I really hate is having to defend my work. When I look at my referer logs and see that yet another stranger is taking things that, had they just asked, I would have gladly given them...angers me. I hate that I feel I must spend time checking my referer log for those "borrowers", in order to protect what should be respected as mine in the first place. I don't want whatever so-called fame comes from having a long-standing or supposedly-prominent personal site. I want to be able to write as much or as little as I please on this site, and want the process of observation and writing to mean more to me than the thought of All Those Readers™ (or not!) who come by (or don't). At the same time, I want my space to be respected by others. It's easy for people to forget that no matter how known or unknown the proprietor of a site is, the proprietor is still a person whose space should, by rights, be honored. Stealing code or graphical work is exactly the same as walking into my house and stealing physical objects from my home. Until everyone realizes how wrong that is, I'll lock the front door of my house and keep an eye on my referer logs. I don't like it, but I feel I must. On the flip side of things: I have no idea how this site comes across to people who have never met me, because it was originally (and still mostly) intended for people who were already a part of my life. I know that I am at heart still an intensely private person, private and often inscrutable beneath a flippant exterior. Most of the people that I care about - and who care about me - read this site. I put a lot of trust in those people; I hope that if they see this project having an adverse effect on me, that they will say something about it. That aside, I'm going to point cat.net in the direction I think it needs to go in: a warped and skewed look at life as I see it. It is sometimes funny, sometimes moronic, sometimes so painful I hardly know how to cope. I'll continue tinkering with code/yarn/cats/etc. because it brings joy to my life. Maybe the retelling will be of interest to others; stranger things have happened.

You know, there was this time when I had perspective on how 'cat.net read to the outside world. Wouldn't trade anything to have that perspective back. It's more fun on the inside.

And now, for the best part, I give you this snippet from her website: http://www.intensified.org/credits.php *snip* "Like any good designer, I will always give credit where it's due!" *snip* sigh...

PHP is server-side code. Meaning that under normal circumstances, PHP code is seen only by the web server's interpreter, not the visitor's browser. So unless it was released by mistake, you knowingly published that code. Maybe publishing the tutorial was done sans strings fifteen months ago, or maybe it was done with the current DMCAish, "Mention me or I'll descend on your ISP" warning. But you gave it away. So Jennifer copied it from some webgrrl that copied it from you who cribbed it from Gareth. Now you're upset that something given to you is also being given away by someone else? Puhleeze. Stealing code from your website is not the same as stealing objects from your home. Objects have persistent mass that depart your abode when taken, but code can be copied freely with no loss of the original. You've lost nothing but pride and some digital breath. Imitation, flattery, getoverit. The DramaQueen(tm) indignation is tiring, honey.

Clearly, "roderickm" has never had any of his code or design stolen from him. Copyright law clearly states that anything created in a tangible sense by a person is thereby 'copyrighted' to him or her, and for another person to claim that as his or her own is, quite clearly, illegal. The point which Mr. Roderick doesn't understand is that it doesn't matter what's lost, whether it's pride or some physical object from one's home -- theft is theft, and there's no place for it anywhere, not in the mall, not in a bank, not in a friend's home, and not online. Furthermore, what does it matter that the code was knowingly published? Is that to say that it is acceptable for a student to copy a poem from a library book and submit it to his teacher as his own, because the poem was 'knowingly published'? Basically what I'm trying to say is, don't let this fool make you feel bad for being upset over this -- you have every right to be, and you certainly don't need me or anyone else to justify that feeling for you. I myself have had things stolen from me -- not code, as I'm a terrible programmer, but entire layouts. I had to go so far as to have one person kicked off of two different hosts for continuously posting an exact replica of the layout I had up at the time. The sad truth is that anybody with an inkling of talent in this blogging 'environment' is going to have people who will try to steal that talent and claim it for their own. You're doing nothing wrong by looking out for these people, and while it can be awful and tedious, it's also the payoff for maintaining an interesting website that is enjoyable and useful. Personally, I think you're doing everything right. :)

The thing that gets me is that she admits that she took the code from someone else, cut the tutorial down and claimed it as her own work. Whether she got it from you or Sarah, she is still claiming it as her own when it isn't. The phrase "doesn't have a leg to stand on" comes to mind.

This is much more controversial than it needs to be, or so it seems to me. The girl ended up with Amy's code on the page. So Amy should get what she asks for, which is credit for writing it. End of story? I think so. In reply to Amy/Domesticat, whatever you prefer, I was mostly making a sarcastic comment when I said that, but your responce is fairly thought provoking. I do understand what you're saying about people stealing your code, because I know all the hard work that goes into even making it functional, and then making it pretty and editing out the redundancies and all that good stuff on top of that ... it's an undertaking as big as any artist goes through when starting a new painting, and people should respect that. You wouldn't claim someone's painting as your own. Just because it's online, just because it was with computers, just because it isn't tangible, etc., doesn't mean at all that my code or your code is any less protected from theft. Hard work is hard work, it doesn't matter the form it takes in the end. Seeing the end of endless hours of working on code is one of the most gratifying things I've felt. Code is blood sweat and tears for anyone that writes it, and it sucks to see other people taking credit. So yeah. I agree. I hope you get some form of credit, or that the tutorial is taken down, even. That's how I found your site, I was looking for tutorials, and I felt guilty not reading the entries. And soon after that I started coming here for the entries, not the code bits or the tutorial. And I do feel like I know you, but I also do know that bloggers are all actors, and blogs are all stages. I should probably start logging in when I come here. I'm pretty sure I have a user ID.

Roderick - drama queen? You bet. C'mon, accuse me of something that *isn't* true so I can at least pretend to be affronted or something. I'm surprised you read this site, though; in the few occasions we've met, I've never had the impression that you've regarded me with anything above polite disdain - when you've regarded me at all. Code can be copied freely without the loss of the original, yes, but not all losses are tangible. I consider the acknowledgement of the source of the code to be my payment for the time that I invested in the creation of the code, its testing, and the creation / maintenance of the tutorial. While you may not agree with my requirement, it exists nevertheless. Anyone who doesn't agree with that requirement may seek other code elsewhere, because it does exist. I'm *not* asking for money or self-sacrifice; I'm asking for a single line providing a link to the original tutorial and acknowledging that the code originally came from somewhere else. It's not just legality. It's good manners.

Rod, I wonder exactly at what point in your life that your head was wedged so firmly up your ass, and when exactly you plan on removing it. I'll find a proctologist for you.

Amy, It's not that I disagree with your recognition requirement or your claim of copyright -- both are perfectly reasonable, legal, moral, and understandable. I agree that it's wrong to steal. I agree that jenn at intensified dot org should not claim something as her own that is clearly and provably not her own. However, there is such a concept as materiality, which essentially asks, "Does it matter?" If someone stole from you the formula for domesti-cola, or the manuscript of your yet-to-be-published novel, or your prototype superduper cheese grater, I'd understand your righteous anger. Those things have significantly high potential value, and would not simply be given away. You'd fight back if they were taken or copied, and understandably so. But in this case, you're giving away (albeit not completely freely) a specific example of your knowledge. A good person would be thankful enough to recognize your gift and credit you according to your terms, but Jenn doesn't see it that way. At this point, why not ask yourself, "Does it matter?" It's fun to grab a little moral highground, claim your principles and rant about it, but really. Have you lost anything save recognition? If so, take the tutorial down and offer it only to those that email you and explicitly agree to your terms. It's nuts to compare this unauthorized copy of a copy of a tutorial to an actual theft of your home's property. If it actually were such a crime against humanity, you'd probably have a redacted police report up here for all to see. Look, Rickie Beth, I've had my code copied. Thieves have broken into my house and ransacked it, taking assorted audio gear and the coin collection passed to me by my grandfather and father. Both actual events were theft, but they were two very different things. Further, it's obsessive to threaten to descend upon a violator's ISP with chat transcripts. I've done a little ISP work in my time, and let me tell you: we don't care, and you shouldn't either. The DMCA has forced ISPs to protect their business by dealing with copyright claims large and small. Do you feel at all part of a community that shares ideas and the knowledge of how to implement them? Even if you don't, your site is built on the back of others' work. PHP, Apache, OpenSSL, Linux... where are your mentions of the countless folks that have built the underpinnings of 'cat.net? Recognize that there's nothing new under the sun, that your tutorial helps share your understanding of how to use other folks' code, and that making a big deal about such a small thing is silly. For the record, I haven't put you in my very own "polite disdain" category. You and I have had a few interesting exchanges over the years, and that's about the extent of it. Every once in a while I wander over to skim your site; today I happened to click the link to your site under the photo of Heather in her Super Mario hat. Your 'little discovery' gave me a subject with which to burn the last twenty minutes or so at my desk. I must admit today's was an engaging exchange, and I visited the page a couple more times at home this evening. If you're like most bloggers, you'll comb your site's logs to see just how infrequently I make it over this way. But thanks for noticing. And Geof, thanks for the apt diagnosis. I await your referral.

It's written words and code. It's copyrightable. Get over it, Montgomery.

Geof, All original works in fixed form are copyrightable -- this comment, your comment, each and every page in Google's cache. In fact, copyright belongs to the creator the moment a work is created. However, any work of material value must be registered to be legally defensible. Unless Amy sent a "best edition" copy of her tutorial to the Library of Congress' Copyright Office with $30 before December 9, 2001, her insinuation of a DMCA claim is, well, toothless. So yeah, Morris, her tutorial is written, and written works are copyrighted. But they're no longer protected by anything other than Amy's polite and reasonable requirement of recognition. Either the tutorial wasn't of sufficient value to protect by an easy $30 registration, or someone neglected copyright law. You can read the copyright faq just as well as I, Geof.

"However, there is such a concept as materiality, which essentially asks, 'Does it matter?' " Apparently it does, or you wouldn't be wasting so much bloody time on this little subject. Rod, your holier-than-thou attitude really distresses me. I remember when you were pretty fun to hang around. I shall pray for the return of those days.

roderickm: What is your problem, anyway? Looks to me like Amy here had some content swiped, and you have the idea that she shouldn't get upset. I realize that since the interwebnet thingy was founded, there has been a great swapfest of stuff, authorized and not. While she apparently didn't register copyright explicitly, she still retains the copyright that everyone has by the act of publishing anything anywhere. The "license agreement" here is that you ask permission before using the skins and stuff. This isn't spelled out with all sorts of legal whereases and parties of the first part, but it is still an agreement. That said, the silly fool who stole the code and tutorial should be smacked severely breaching basic ettiquite of western civilization if nothing else. That said, what the heck is your problem anyway? DId something crawl up your rectum and die that you had to come to this blog and start a flamewar? It appears taht you're even known to the people around here. What you said contains a nugget of truth on the facts, but you could have been a whoel heck of a lot nicer about saying it. *plink plink* that's my 2 cents as a lurker to this interesting site.

It's unfortunate that I've upset a few readers by expressing my opinion here. I understand that this Jenn character has done something wrong and refuses to make it right in Amy's eyes. I agree that Amy's desire for recognition is a reasonable swap for an otherwise free tutorial. The only reason I responded was that the resulting indignant furor was evelated to hyperbole. Forgive my wordy comments, though; I type fast, so I can usually get out a few complete thoughts while my ire is still raised. I honestly tried to respond factually, and stand by my comments. But there have now been two out-of-context references to my backside, and Geof's right -- the concept of materiality applies to my participation here, too. So please forgive the presence of my obviously unwelcome contrary opinion, and have a Merry Christmas.

"Hey, y'all, the horse is dead, and I've called the ASPCA." I declare this Flame Battle to be OV-AH!

Wow. I'm awfully glad I was on vacation this week. After reading this on top of that, I think I'll just pretend I never came back. =)