How not to Christmas

Whereas, on or about the night prior to Christmas, there did occur at a certain  improved piece of real property (hereinafter “the House”) a general lack of  stirring by all creatures therein, including, but not limited to a mouse.

A variety of foot apparel, e.g. stocking, socks, etc., had been affixed by and  around the chimney in said House in the hope and/or belief that St. Nick a/k/a/  St. Nicholas a/k/a/ Santa Claus (hereinafter “Claus”) would arrive at sometime  thereafter.

The minor residents, i.e. the children, of the aforementioned House, were  located in their individual beds and were engaged in nocturnal hallucinations,  i.e. dreams, wherein vision of confectionery treats, including, but not limited  to, candies, nuts and/or sugar plums, did dance, cavort and otherwise appear in said dreams.

Whereupon the party of the first part (sometimes hereinafter referred to as  “I”), being the joint-owner in fee simple of the House with the parts of the  second part (hereinafter “Mamma”), and said Mamma had retired for a sustained  period of sleep. (At such time, the parties were clad in various forms of  headgear, e.g. kerchief and cap.)

Suddenly, and without prior notice or warning, there did occur upon the  unimproved real property adjacent and appurtent to said House, i.e. the lawn, a  certain disruption of unknown nature, cause and/or circumstance. The party of  the first part did immediately rush to a window in the House to investigate the  cause of such disturbance.

At that time, the party of the first part did observe, with some degree of  wonder and/or disbelief, a miniature sleigh (hereinafter the “Vehicle”) being  pulled and/or drawn very rapidly through the air by approximately eight (8)  reindeer. The driver of the Vehicle appeared to be and in fact was, the  previously referenced Claus.

Said Claus was providing specific direction, instruction and guidance to the  approximately eight (8) reindeer and specifically identified the animal  co-conspirators by name: Dasher, Dancer, Prancer, Vixen, Comet, Cupid, Donder  and Blitzen (hereinafter the “Deer”). (Upon information and belief, it is  further asserted that an additional co-conspirator named Rudolph may have been  involved.)

The party of the first part witnessed Claus, the Vehicle and the Deer  intentionally and willfully trespass upon the roofs of several residences  located adjacent to and in the vicinity of the House, and noted that the Vehicle  was heavily laden with packages, toys and other items of unknown origin or  nature. Suddenly, without prior invitation or permission, either express or  implied, the Vehicle arrived at the House, and Claus entered said House via the chimney.

Said Claus was clad in a red fur suit, which was partially covered with residue  from the chimney, and he carried a large sack containing a portion of the  aforementioned packages, toys, and other unknown items. He was smoking what  appeared to be tobacco in a small pipe in blatant violation of local ordinances  and health regulations.

Claus did not speak, but immediately began to fill the stocking of the minor  children, which hung adjacent to the chimney, with toys and other small gifts.  (Said items did not, however, constitute “gifts” to said minor pursuant to the  applicable provisions of the U.S. Tax Code.) Upon completion of such task, Claus  touched the side of his nose and flew, rose and/or ascended up the chimney of  the House to the roof where the Vehicle and Deer waited and/or served as  “lookouts.” Claus immediately departed for an unknown destination.

However, prior to the departure of the Vehicle, Deer and Claus from said House,  the party of the first part did hear Claus state and/or exclaim: “Merry  Christmas to all and to all a good night!” Or words to that effect.”

Shamelessly stolen from teh intarwebz.

The List: Movies My Kids Need To See

Forrest Gump

The Road to Wellville

Pee Wee’s Big Adventure

Meatballs

Sister Act

Back To The Future

Kindergarten Cop

Halloween

Terminator

The Usual Suspects

The Blues Brothers

Sling Blade

This Is Spinal Tap

The Sixth Sense

War Games

The Matrix

My Cousin Vinnie

The Prestige

Groundhog Day

Blazing Saddles

The Blues Brothers

Caddyshack

Real Genius

No Way Out

Dogma

Friday the 13th

The Crying Game

Airplane

Real Genius

Jaws

The Wall

Stripes

Private Benjamin

The Goonies

Last Action Hero

The Warriors

Falling Down

The Outsiders

The Lost Boys

Full Metal Jacket

Same as it ever was

Dave Winer has done more laps around the programming track than most of us. He’s seen the same code recreated again and again on each new platform, as the next generation of developers thinks they can start from a clean sheet of paper and not make the same mistakes as everyone else.

I won’t say they’re completely wrong … they manage to add some new mistakes every time.

It’s not just the code; they keep reinventing the same business models, too. For example: Create an open platform, get independent developers to target your platform, then shut off the API once you’ve reached critical mass.

Older guys see this play coming a mile away, but younger guys always seem to think this time is different, no matter how many times you warn them. But you have to keep warning them anyway, don’t you?

I think so, and I thought Dave did, too. That’s why I was so surprised by his response to a comment I left on his blog.

Dave was writing about why investors seem to want Dick Costolo out as head of Twitter. Marshall Greer wrote:

I like the idea of Twitter going back to its roots with developers. It plays to its strength as a platform. The challenge here is due to how many have been burned. On the flip side, there aren’t a lot of obvious alternatives.

I replied:

The cynic in me says that’s not a challenge at all. There’s always a fresh pool of developers who haven’t been burned yet. And they never listen to the “old guys” who have seen it happen again and again.

Dave said:

Everyone has heard that opinion, it’s what gets said over and over. Try to add new ideas.

Which honestly confuses me. Yes, it gets said over and over. Because it’s true over and over. And companies will keep pulling the same shit with developers as long as it keeps being true.

Dave has tried dropping out, ignoring the latest re-hash of the same stuff he was writing in the 80s. He even deleted his Facebook account and avoided the platform for more than two years. Eventually he started working with them because, “Facebook delivers more readers and engagement. And despite all the advantages of blogging, Facebook is winning.”

Makes sense. If you want people to hear what you’re saying you have to go where they’re listening. And if you’ve been around the block a few times you go in with your eyes open.

But when someone suggests that a company can’t do something because of how they’ve burned developers in the past, don’t those of us who have seen it have an obligation to stand up again and tell the story?

Whether a falsehood is stated through ignorance or malice, if no one disagrees it becomes the conventional wisdom.

How To Win A Flamewar

If you’ve been online long enough to have found this article you’ve probably seen, or even participated in, a flamewar. Seen from the outside, you know you’re looking at two people exactly like this guy:

What do you want me to do?  LEAVE?  Then they'll keep being wrong!
Duty Calls

You don’t normally see flamewars in real life except in special-interest forums: politics, academia,[1] sports,cosmology.

Then there are those special people, the polyflamers who will argue on any topic. No, not lawyers. Geeks.

Something in the geek psyche makes them — okay, us — prone to obsess over pedantic distinctions that ordinary people just don’t care about. If you think about flaming in geek terms, though, you see a way out.

Compiled language

When writing code, a programmer usually writes instructions that are in (somewhat) human-readable form. These instructions are then “compiled” into commands that a computer can interpret and execute. If the output from the computer is wrong, either the commands the programmer entered were wrong, or the compiler didn’t work correctly.

Experienced programmers quickly learn that it’s very unlikely they’ve found a new compiler bug. If there’s a problem, it’s almost always the code they wrote. Sometimes, though, there really is a bug in the compiler. Compilers can get fixed, but not quickly, and not often. The changes have to be small enough that they don’t introduce new problems. And they will potentially break any code that was designed to work around the bugs. Which is exactly what programmers do: They work around the bugs.

Debugging politics

Now think about a political campaign as a computer program. The campaign staff is writing instructions (commercials) that they hope will cause the public to exhibit specific behavior. But the target platform is the brain of each individual voter. Each one has its own rules, so every compiler works differently. But here’s the important part: You can’t fix the compiler. No matter how broken you think someone’s thinking is you can’t change the basic rules.

What you can do is figure out what rules they’re using. Which means stereotyping people. pigeonholing them based on a few characteristics you’re sure of, and assuming that a whole bunch of other things are probably also true. The sad fact about humanity — sad if you’re a fan of individuality, that is — is that this tends to work pretty well.

These are not the earmarks you were looking for

So now that you know each brain is wired differently, and you don’t have much chance to “fix” it, what are you supposed to do about it? Stop using arguments that work on you, and start using ones that work on them. Whoever “them” happens to be at the moment.


[1] Combine two and you get the observation that academic politics are so vicious precisely because the stakes are so small. Attributed to Woodrow Wilson after his time as president of Princeton University.

How To End Piracy


Photo by: peasap

All the talk of people pirating music — and movies, and software — is enough to make you think it’s a hard problem to solve. But it’s not, really. All you have to do is disincentivise copying. (That’s sarcasm, for those who missed it.)

The MPAA and RIAA have tried licensing, lawsuits, lobbying (I didn’t do that on purpose, I swear) but the copying doesn’t stop. People are amoral thieves!

Or … maybe people remember that when the compact disc format came out, it was supposed to be cheaper than cassettes. They cost less to produce, so as soon as the studios recouped the cost of building the new technology we’d see prices drop. It’s been over 27 years now, have they recouped that investment yet?

Apple to the Rescue

Continue reading How To End Piracy

Please don’t believe anything in this post

In Yet Another Internet Forum Discussion About Offshoring (I hereby claim authorship of the acronym YAIFDAO) someone wrote:

A lot of decisions should NOT be left to developers to make. imho, the time to think out of the box is gone by the time it is TIME TO CODE. It’s not time to think about alternatives to what to do.

That is absolutely right. You never want developers talking to end users. They might suggest some other plan than what was painstakingly shepherded through four levels of approvals.

And let’s just squash the notion right now that sometimes there are trade offs to consider. Just because the analyst’s solution will take three weeks of coding effort and a new application server, while the programmer knows of a reusable component that will take one hour and no increased hardware, is no reason to institute the Change Control Process.

Alternatives should always be considered in isolation from the impact they cause. Implementation issues should never be allowed to intrude into the world of business decisions.

Next thing you know someone’s going to suggest that maybe mere programmers could have a meaningful contribution to make to the business process. What rubbish.

Can the FSF “Ban” Novell from selling Linux?

Novell Could Be Banned From Selling Linux: Group Claims

BOSTON – The Free Software Foundation is reviewing Novell Inc.’s right to sell new versions of Linux operating system software after the open-source community criticized Novell for teaming up with Microsoft Corp.

The problem is that the FSF wants all code to be free. Period.

That’s their preference, yes.

They want to make the GPL so darned viral that no one can include any copyrighted or patented components Period.

No, they want all the components on which they hold the copyrights to be protected by those copyrights. And they want those components to be freely available to anyone who agrees to make their modifications available under the same terms.

You can’t modify and distribute Microsoft’s code without permission. You can’t modify and distribute GPL code without permission.
The way you get permission to distribute Microsoft’s code is to pay them a lot of money, or cross-license your own code. The way you get permission to distribute GPL code is to release your modifications under the GPL.
Microsoft can destroy your business model by bundling a version of what you make. GPL-using authors can destroy your business model by releasing a free version of what you make.
If you don’t want to be bound by Microsoft’s terms, write your own code. If you don’t want to be bound by the GPL, write your own code.

 
How is GPL viral while Microsoft is business?

How can the FSF “ban” Novel from selling “Linux” when Linux itself is not wholely licensed under the GPL and not wholely owned by FSF? Sure, there are many GPL components within the typical Linux distro, but not all of them have to be.

According to Answers.com:

More Than a Gigabuck: Estimating GNU/Linux’s Size, a 2001 study of Red Hat Linux 7.1, found that this distribution contained 30 million source lines of code. … Slightly over half of all lines of code were licensed under the GPL. The Linux kernel was 2.4 million lines of code, or 8% of the total.

So the first point is that no, the FSF can not ban Novell from selling a GNU/Linux-based distribution, as long as all the current license terms are followed.

However, the holder of the Linux trademark, Linux Torvalds, could choose to prohibit them from using that mark to describe what they’re selling. (See Micosoft / Sun / Javaâ„¢) Though I haven’t seen anything suggesting he plans to do so.

Next, the Linux kernel is covered under the GPL, so even if the the FSF doesn’t hold the copyright it’s entirely possible the kernel authors could ask the FSF to pursue any violations on their behalf. And I suspect Stallman and Moglen would be more than happy to do so.

The bottom line, I think, is that business people who don’t understand the technicalities will either see a deal with Microsoft as a reason to choose Novell for any Linux plans, or they will see the controversy as a reason to avoid Linux plans altogether. Either conclusion benefits Microsoft.

People who do understand the details will see that Novell offers them a conditional, time-limited right to use a specific version of Linux, which may or may not interoperate better with Windows systems, which can be effectively “end-of-lifed” at any time by Microsoft.

Changing your development platform

There are certain milestones in the life of a product when developers are free to ask if it’s time to change the platform it’s developed on. Typically you’ve shipped a major version and gone into maintenance mode. Planning has started for the next version, and you wonder if you should stick with what you’ve got or if, knowing what you know now, it might be better to switch from .NET to PHP, or from PHP to Java.

You might think that checking Netcraft would be a good idea. You can see if your current platform is gaining or losing market share, and who doesn’t like market share? If you look at the latest chart you’ll see that Microsoft is gaining on Apache.

But keep in mind that while Apache’s market share has gone down marginally, the total number of sites has still gone up. Most of Microsoft’s gain is from new sites, not from existing sites switching. (The exception being large site-parking operations switching to IIS.)

But really the important question is whether your preferred platform faces a reasonable possibility of becoming obsolete/unsupported. This is actually one place where the Unix world’s slower upgrade cycles help. You rarely have applications “sunsetted” by the manufacturer.

Am I arguing in favor of dropping .NET? Not at all. I think you should use what works for you. What I’m saying is unless your chosen platform is in danger of becoming unsupported, and that causes a problem for you, then looking at market share charts should never get you to switch.

Now if you hadn’t already chosen a platform, and you wanted to know what platform had a larger market, then you’d care about market share. But that’s a subject for another post.