BT et C

Sunday, February 25, 2007


The first 5 times this happened I didn't even notice. The next 5 times I was like, "dang. Oh well you live and learn". The next 5 times I was like "that's getting *annoying!" And it has happened again and I'm pist enough to blog about it.

Here's what happen(ed)(s): I decide to try something new, find a nice tutorial, and discover an error in the tutorial. Not 3 hours later; not after mastering the material and going back to review it. No, that'd be fine and all part of the learning experience. I can dig. This happen(ed)(s) generall in the first few minutes; one of the *very *first bits of example code fails to do what is promised. ("Hello World" works over 90% of the time).

I'm reading Programming Ruby, one of " the best two technical books I have read these past years" and it says ppl with some experience start w/Chapter 2, so I'm on page one of that.

"hello world" works as does "ruby --copyright". Even a script as complex as
ruby -n -e "print if /wombat/" *.txt
works. Wow. But the next one doesn't.
ruby -p -e "$_.downcase!" *.txt

Now I'm not the kind of guy that expects everyone to do all my work for me. I love doing work; but I'd like to feel as though the work is not futile; that progress is being made. I can't feel this way now, because I don't know if 1) The tutorial is wrong, and a) what else will it be wrong about or 2) My installation of ruby is wrong and thus b) are there going to be a bunch of other things that don't work because of my installation.

And again, I wouldn't even mind if this happened from time to time. Makes you get your hands dirty. But it seems like about 2/3 of the "introductory" material I find on any technology is afflicted by this problem.

End rant.

Thursday, February 08, 2007

Have You Sold Your Brain?

After a couple years of self-employment, I landed what seems to be a decent job: lots of code, friendly environment, good pay. It's been awhile since I signed any employment agreements, so I read this one carefully, and frankly I'm amazed at what is in it.

Since it's a code-writing job, the pertinent section is the one on copyrights and inventions. Patents are included, too, but I don't have or expect to have any of those. The section begins
"All work product ... including, but not limited to, all Employee's inventions and ideas ... that relate in any way to the present or prospective fields of interest of [Staffing Firm] or the Client ... or that are capable of being used in, or in connection with, the business of the Client as conducted now or hereafter shall belong exclusively to [Staffing Firm], whether or not fixed in a tangible medium..."
Hm. I'm not too keen on treating ideas as property, generally speaking, but I'm 100% okay with keeping trade secrets, etc. as a condition of employment. But this goes way beyond that: every idea "capable of being used" by the Client? "Whether or not fixed...?" Sure sounds like the thoughts themselves, and all of them. At the very least, it means any website-related thoughts I have, since this is a job building a website.

But hey, I'm generous and information wants to be free. I'd let 'em use just about anything I dream up during the "period of employment." But that's not enough: they want these ideas to "belong exclusively" to them.

The person "helping" me through this paperwork assured me that the document only says I won't copy code from the client's project and give it to a competitor. Is that how you understand the above? If the verbal description of the Agreement matches the actual agreement so badly, which is binding?
if such Works are not considered "works made for hire" by operation of law, Employee agrees to, and does hereby assign all of Employee's rights to Works exclusively to [Staffing Firm]
My interpretation: the agreement's definition overrides the copyright law's definition of works-for-hire.
any inventions and ideas which (s)he may discuss with anyone within six (6) months after the termination of his/her employment... shall be presumed to have been made during Employee's period of employment... Employee assumes the responsibility of proving that he/she conceived and made any such invention or idea after his/her employment hereunder terminated
Six months of "tail" is appropriate, in my opinion, if the previous section hadn't overreached about what kinds of ideas are covered. I really hope I misinterpreted that. As to the second sentence, I leave it as an exercise for the reader to figure out how to prove when something -- other than a fetus -- was first conceived. (If you want to do this exercise, NB: say employment ends in January. You must prove that X did not conceive of Y until July. Good luck)

There's one more section I want to touch upon, because it put me at ease for a moment, then pulled the rug out. I have the option of attaching, basically, some Prior Art, which would not belong "exclusively" to the staffing firm (*so generous, since all this Art was created years before I ever heard of them.) I was considering handing over a CD with copies of all the websites I've built in the past. But these attachments

shall be disclosed on a non-confidential basis and Employee agrees that [Staffing Firm] shall have an irrevocable and free right to use such inventions, ideas, and copyrights in any way whatsoever except for such valid patent rights as Employee may have...
So (please, please tell me I'm missing something)
  • Basically all internet-related ideas that I have during employement and for six-months afterward belong "exclusively" to them
  • Any ideas I've dreamed up in the past can be exempted
  • But only if I give them an irrevocable license to use all of that material however they see fit. And with the mention of "copyrights" here it looks like that means copying/distributing any code I disclose..
I am not a lawyer, just a careful reader. All advice is appreciated.

Friday, February 02, 2007


I'm going back to the abbreviations for awhile, 'cause they're fun.

Microsoft's "Software Protection Platform" -- the culmination of years of expanding windows-validation schemes -- is an incredible achivement on many levels. (Note: I have not used Vista and hope never to do so. Here is my source)

  • Misnomer of Orwellian proportions: "Platform" is just a word that one attaches to an application to make it sound bigger, so I'll ignore it. You might initially assume that the 'platform' is protecting your software, but This is not the case. Software is the subject of the protection, not the object, and it is protecting something else (from you). That something else, of course, is Microsoft. But you have to think on it a bit before that becomes apparent. Brilliant.
  • Undermine, chapter 1: Farbeit from me to give anyone ideas, but it seems that SPP present a fascinating attack vector. This is an application that is designed to make the machine unusable. Formerly the only such system on most machines was the power button. When Windows gets the idea (from SPP, or from __________?) that this is an unpaid-for copy, it goes into "reduced functionality" mode, and then goes downhill from there. I would love to hear a competent security research discuss the tradeoff between this obviously-gaping hole versus UAC and the other security buttresses that have been built in.
  • Undermine, chapter 2: The irony of it all, of course, is that SPP, like all DRM schemes, only needs to be cracked once -- at which time the major players in the software "piracy" industry will continue on their merry way. The number of pirated copies of Windows might slide a bit before picking up where it left off. The false positives -- and the support for angry customers that ensues -- will almost certainly wipe out any extra revenues from licenses purchased as a result of SPP.
The last irony is that I personally wish SPP would work, and flawlessly. I wish no one on the planet could possibly use Microsoft's "intellectual property" without paying them. The reason should be clear: the vast majority of people using illicit copies of Windows can't afford to buy it, and would thus switch to a free alternative.