2007-02-13

GOP: Graph Oriented Programming

Draw programs. Flow charts create state transitions. Objects handle the transition into and out of a state. Programmers create objects, Analysts create flow charts.

Yeah right.

I seem to remember that SQL was supposed to mean that lay-people could work with databases and write queries and manage data. Yeah right, there was an entire career path created for DBA's. So what now... GOAs?

2007-02-12

Software Metaphor: Chop Sticks versus Formal Cutlery

Consider the simplicity of chopsticks versus the complexity and elegance of formal cutlery as demanded by a formal table setting.

In the past cutlery was far more complex yielding exceptionally specialized tools for every dining situation. The complexity of formal dining utensils is just plain daunting to the neophyte. A different fork for every function. A different spoon for every food. A knife for butter, a knife for bread, a knife for fish and on goes the list.

Now, consider the chopsticks. Every food imaginable can be eaten with the chopsticks. Need to cut? Scissor your chopsticks to slice. Need to stab your food to get a hold of it? Stab the item of food with a single stick. Need to scoop food? Form a wedge with your sticks and scoop away. There is no need to learn a proliferation of tools, just one tool. Use this one tool well and all of life's dining problems are solved. Or, just avoid the problem entirely and lift the soup bowl to your mouth... have the chef slice the food smaller... if all else fails... don't eat that.

In Software Engineering we face the battle between chop sticks and cutlery every time we start a new project. Should I use a specialized technology? Should I use the chop sticks I know so well? The happiest Software Engineers learn to use chop sticks, and when problems get sufficiently messy, the learn to put down the sticks and pick up the right utensil. They keep the utensils down to knife, fork, and spoon if possible to avoid the over-head of having too many tools.

Don't fall into the "hammer" problem where in you see every thing as a nail needing to be hammered, yet keep away from the Victorian table setting if at all possible.

2007-02-07

The world is flat.

Around about... no... a flat about... a year ago I read the Thomas Friedman book "The World is Flat" and I spent most of my time reading the book wondering why anything in the book was considered new, though provoking, or some how significant. If you haven't read "The World is Flat" and you know what a Blog is then don't bother. But, the whole experience of reading that awful book is worth it just to read this review by Matt Taibbi which is far and away a better read. I only wish I'd stumbled upon the review before I read the book.

In fact, Taibbi does such a good job of tearing-up Friedman's book that I think there should be a whole genre of literature created just to tick-off Taibbi.

2007-02-06

Protocol

It's not just zealotry, Linux really is more secure than Windows. The reasons are visible in the Sana Security diagrams posted by Richard Stiennon on ZDNet. But really this goes back to good protocol.

The issues I reported on earlier that both the VA and Johnston County suffered from are not really issues about security. They are problems with protocol. If you have poor protocol you can use the strongest encryption in the world and it won't help.

What good is a great cipher if you spray paint the key on the side of a bridge? What good is a pad lock if you write the combination on the door? Good protocol can secure bad encryption more easily than good encryption can help bad protocol.

The Sana Security diagrams show us just how bad the windows internal protocols really are. There is no securing this system with Digital Rights management or any other encryption scheme. Any security method placed on top of a such bad messaging protocol will fail miserably because even if the encryption or other security suite is perfect... windows isn't. And the system will be compromised by drilling down into windows... not through the security system.