- Use lots of spaces.
- Cram everything together without any spaces.
- Align code in arbitrary places.
- Make up really long variable and function names.
- Make up random variable names that don't match the data.
- Make up random function names that hide or obscure the code that is executing.
- Use 1 character variable names.
- Rewrite the same functions a dozen or so times.
- Guess, write some code, toss it out and then guess again...
- Sit around in meetings every day.
- Stand around in meetings every day.
- Avoid all meetings.
- Procrastinate about getting organized.
- Get organized about procrastinating.
- Get clever (monkeys are clever …)
- Comment about the obvious aspects of the code.
- Don't comment about the weirdness of the code.
- Apply a hastily thought-out patch.
- Add in extra lines of code in the hopes that somehow, that will make it better.
- Change everything at the last moment.
- Continuously ignore a serious problem or miscommunication.
- Watch someone else type.
- Write a test for something that would be obvious if it were wrong.
- Write a test for something that ain’t never going to happen.
- Write a test to test if a test is working.
- Re-invent something that has been in textbooks for decades.
- Rely on something that kinda works, instead of spending the time to build something that actually works.
- Take technical advice from non-programmers.
- Ignore domain or usability complaints from the users.
- Ignore the users.
- Yell at the users for not being to use unusable software.
- Assume (pretty much anything).
- Believe in the marketing documentation, without reading the specs first.
- Design an ugly user interface (and refuse to believe that it is ugly).
- Write documentation that absolutely nobody will read and if they did, couldn’t glean any useful information from.
- Make pretty diagrams. Lots and lots of pretty diagrams.
- Build something large without a design or blueprints.
- Build something small and expect it to magically grow into something large.
- Refuse to provide any information.
- Provide too much information(s).
- Wait for the magic to happen.
- Ignore what everyone else is doing, and get super, super, super creative.
Software is a static list of instructions, which we are constantly changing.
Monday, March 28, 2011
How to Waste Your Time While Programming
Fun ways to kill off programming productivity:
Friday, March 25, 2011
Greed and the Ownership of Data
Data is a virtual set of symbolic tokens representing things in the real world. It does take some effort to type in, to correct and to store it in a large database, but ultimately the data itself is just a reflection of the world around us. In some of the Social Networking sites, the main work in collecting the data is the participants themselves. Because of that, they have an implicit say in how the data is used or abused. If they’ve chosen to trust a company enough to allow them to have the data, and they haven’t explicitly insisted that it is private data, then the presumption is that it is for public consumption. Given that the information is about things in the real world, and that it has been maintained and corrected by a third party, the only claim a site can have to it is that it has cost them something to set up the infrastructure and something to maintain the storage. Is that enough to say that they own the data?
If I’ve typed my info into a social site, and I have the expectation that the information is made public, or can be made public, then because it is information about me or some aspects of my world I find it very hard to believe that someone else can “own” it. I do understand the need to monetize their work to make back any investments, but sites have to do that with their own efforts, not mine. What’s mine is mine, and if I have given it away, then it is available for everybody, not just some clever hackers with a desire to get rich quickly. If the company had come to me, done the analysis and then all of the data entry, I could see that as a different story; they produced the information, not me. But when I am the producer, I take someone trying to stake a claim on my work as their own, as being excessively greedy. “Owning” data is questionable, but owning data that you grabbed from someone else is stepping over a line.
If I’ve typed my info into a social site, and I have the expectation that the information is made public, or can be made public, then because it is information about me or some aspects of my world I find it very hard to believe that someone else can “own” it. I do understand the need to monetize their work to make back any investments, but sites have to do that with their own efforts, not mine. What’s mine is mine, and if I have given it away, then it is available for everybody, not just some clever hackers with a desire to get rich quickly. If the company had come to me, done the analysis and then all of the data entry, I could see that as a different story; they produced the information, not me. But when I am the producer, I take someone trying to stake a claim on my work as their own, as being excessively greedy. “Owning” data is questionable, but owning data that you grabbed from someone else is stepping over a line.
Monday, March 21, 2011
Patents and Routine Engineering
One of the great evils of the 21st century is our system of patents. I’m guessing that they were devised to help the little guy not get plowed over my the 200 pound gorillas out there, but these days they do anything but that. They’re just tools to try and force an unwarranted monopoly on an existing market.
What really irks me is when someone gets away with claiming they own ‘routine engineering’. Some guy writes some unspectacular code that is slightly different than the current, growing and ever changing conventions. Clearly a derivative work. Nothing awesome, but just a minor tick better. Then if he’s at a big shop, a horde of lawyers descend and turn that into something that they can fight about later. Ick.
One way to kick patent trolls is to limit damages to lost revenue. No product? Then no damages. Also, make it illegal to sell the patents by themselves. If they want the patent, they have to buy the whole division that produces the relevant product. And it wouldn’t hurt to limit the patent down to five years or so; not an entire generation’s worth of twenty.
Another thing to do is not allow obvious patents. That is, no one should ever be allowed to patent something trivial like an ‘on switch’ for which you have no choice but to add it. That also applies to some of these NUI patents. You have to interact, that’s clearly prior art, so the actual specifics of how that is done is just a derivative. If someone is too close, that’s what trademarks are for ...
Even better would be to make it possible for the little guy to actually protect their work too, instead of just the behemoths. What’s the point of a set of laws if they doesn’t actually do what they were intended to do.
What I’d be in favor of is forming a new ‘international’ patent office. One that handles this in a fair way on a world-wide basis. Just to make it more interesting, not only would you have to have a product that was affected, but you’d also have to have it in a common local market with the offender, in order to claim compensation. Also, an option to have the patent granted, but not fully filed (to make it cheaper for both the submitting and the checking) would help. People could write up crude patents for a small fee, but only go through the legal nightmare if there was an issue. If they never get a product to market, then their patents would be useless (and never need to be checked).
Patents suck. It’s about time someone fixed them.
What really irks me is when someone gets away with claiming they own ‘routine engineering’. Some guy writes some unspectacular code that is slightly different than the current, growing and ever changing conventions. Clearly a derivative work. Nothing awesome, but just a minor tick better. Then if he’s at a big shop, a horde of lawyers descend and turn that into something that they can fight about later. Ick.
One way to kick patent trolls is to limit damages to lost revenue. No product? Then no damages. Also, make it illegal to sell the patents by themselves. If they want the patent, they have to buy the whole division that produces the relevant product. And it wouldn’t hurt to limit the patent down to five years or so; not an entire generation’s worth of twenty.
Another thing to do is not allow obvious patents. That is, no one should ever be allowed to patent something trivial like an ‘on switch’ for which you have no choice but to add it. That also applies to some of these NUI patents. You have to interact, that’s clearly prior art, so the actual specifics of how that is done is just a derivative. If someone is too close, that’s what trademarks are for ...
Even better would be to make it possible for the little guy to actually protect their work too, instead of just the behemoths. What’s the point of a set of laws if they doesn’t actually do what they were intended to do.
What I’d be in favor of is forming a new ‘international’ patent office. One that handles this in a fair way on a world-wide basis. Just to make it more interesting, not only would you have to have a product that was affected, but you’d also have to have it in a common local market with the offender, in order to claim compensation. Also, an option to have the patent granted, but not fully filed (to make it cheaper for both the submitting and the checking) would help. People could write up crude patents for a small fee, but only go through the legal nightmare if there was an issue. If they never get a product to market, then their patents would be useless (and never need to be checked).
Patents suck. It’s about time someone fixed them.
Subscribe to:
Posts (Atom)